2016-08-03 16 views
0

Ich versuche Postdaten mit REST API mit jQuery AJAX. Mein Code ist unten,Rückruf HTTP 400 Fehler

$.ajax({ 
    url: 'myurl', 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    data: JSON.stringify(jsonData), 
    dataType: 'jsonp', 
    success: function(responseData, textStatus, jqXHR) { 
     if (responseData.result == "true") {    
      $.mobile.changePage("#registersuccess",{transition:"slide"}); 
     } else { 
      alert("kayıt başarısız"); 
     } 
    } 
}); 

Ich überwache mit Explorer-Entwickler-Tools. Ich erhalte diese Fehlermeldung:

HTTP400: SCHLECHTE ANFORDERUNG - Die Anfrage konnte vom Server wegen ungültiger Syntax nicht verarbeitet werden.
GET - http: MyService Rückruf = jQuery111306711937631005869_1470230696599 & [{ "name": "", "phonenumber": "", "Passwort": ""}] & _ = 1470230696600

Was bedeutet das : &_=1470230696600?

Antwort

0

Ersetzen Sie datatype von jsonp zu json. Sie können mehr über den Unterschied zwischen json und jsonp hier What are the differences between JSON and JSONP?

+0

Wenn ich von json ändern, JSONP Ich nehme Cross Domain Fehler. –

+0

Können Sie angeben, ob sich der Client und der Server in derselben Domäne befinden? Wenn nicht, sollten Sie nachsehen, wie Sie CORS auf Ihrem Server aktivieren. – Poly

+0

Nein, Mein Server und mein Client sind nicht dieselbe Domäne. Ich benutze Amazon Linux Server, Wie ich aktiviere, außer dass ich meinen jquery ajax code cache hinzugefügt habe: true; Ich habe diese Fehlermeldung erhalten: GET - http: MeinService? Callback = jQuery111306711937631005869_1470230696599 & [{"name": "", "phoneNumber": "", "password": ""}] –

1

Cache standardmäßig false für JSONP Anfragen (siehe dataType in Ihrem Code) lesen; Der Parameter _ wird verwendet, um den Cache zu bersten. Der Wert ist der Zeitstempel zum Zeitpunkt der Anfrage.

Siehe jQuery docs bei http://api.jquery.com/jQuery.ajax/

0

gelöst I Problem Hinzufügen von Code Server Site,

public class CORSFilter 

implementiert ContainerResponseFilter {

public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) 
     throws IOException { 

    MultivaluedMap<String, Object> headers = responseContext.getHeaders(); 

    headers.add("Access-Control-Allow-Origin", "*"); 
    //headers.add("Access-Control-Allow-Origin", "http://podcastpedia.org"); //allows CORS requests only coming from podcastpedia.org  
    headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");   
    headers.add("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, X-Codingpedia"); 
} 

}