2016-06-01 3 views
0

Ich postete vor wenigen Tagen diese question und ich war in der Lage, die Anwendung aus einer lokalen Umgebung gut zu testen.Machen Sie WEB-API-Anrufe von der Anwendung

Heute habe ich die API unter dieser location veröffentlicht. Aus irgendeinem Grunde die Anrufe ich in der Lage war, vor Ort zu tun, zum Beispiel:

jQuery.ajax({ 
      type: "POST", 
      url: "http://localhost:5832/api/Cage", 
      data: JSON.stringify({ ssqUserId: 176650, token: 'b2fwfybdeec177hespp7orvvzvf0rv', ssqEventId: 1, baitUsed: '1', baitPlaced: '12/12/2016', cageFell: true, clickOnCageToClose: '05/01/2016', successfulOrNot: false }) 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 
       alert(data); 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert(xhr.status); 
       alert(thrownError); 
      } 
     }); 

waren in der lokalen Umgebung in Ordnung zu arbeiten und ich war in der Lage die Daten korrekt zu speichern.

Aber wenn ich die Änderung der URL zu

url: "http://web2.mindsetworks.com/api/Cage",

In der Ajax-Aufruf Ich bin nicht in der Lage, überall zu bekommen.

in der lokalen Umgebung i CORS mit diesem Codezeile über der Controller Erklärung aktiviert hatte:

[EnableCors (Herkunft: "http://localhost:15528" headers "", Methoden: "") ]

Ich habe diese Codezeile entfernt, um die API online zu öffnen. Muss ich etwas anderes tun, um auf die Remote-API zuzugreifen?

Dank

Antwort

0

Ich gehe davon aus, dass Sie Ihre Bewerbung an einer entfalteten Unterverzeichnis Ihrer Domain http://web2.mindsetworks.com/API.

Dies verursacht natürlich Ihre Web-API-Anwendung den folgenden Eintrag Punkt haben:

http://web2.mindsetworks.com/API/api 

Die Steuerung Sie ist in diesem URI erreichbar erwähnt:

http://web2.mindsetworks.com/API/api/Cage 

Als beiseite: Wenn Sie CORS für jede Domäne zulassen wollen, müssen Sie es mit Ihrem HttpConfiguration Objekt konfigurieren und ihm eine Standardinstanz des EnableCorsAttribute zur Verfügung stellen, die w verwendet ildcards:

0

Sie scheinen Ihre Route zweimal

routes.Add(new Route 
("MS_attributerouteWebApi", 
    "Category/{action}/{categoryName}" 
    , new CategoryRouteHandler() 
)); 

Zum zweiten Mal werden das Hinzufügen, Sie sind bei der Zeilennummer 128

Zugabe
SSQ_Api.WebApiApplication.Application_Start() +128 
+0

tatsächlich war ich etwas in meiner Anwendung letzte 5 Minuten testen, bitte versuchen Sie es jetzt, ich kehrte zurück in den Ausgangszustand. – Laziale

+0

Eine Route mit dem Namen 'DefaultApi' befindet sich bereits in der Routensammlung. Routennamen müssen eindeutig sein. –

+0

Sie können Ihre API-URL im Browser direkt überprüfen, um den Fehler zu sehen –

Verwandte Themen