4

クロスドメインを許可するためにJSONPリクエストを作成しようとしています。サーバーがJSONPリクエストを処理せず、このリクエストをJSONとして理解し、JSONオブジェクトで応答するという状況です。{result: 1}

これが私のajaxリクエストです:

jQuery.ajax({
    type : 'POST',
    url : "https://example.com/addUser",
    data : {
        firstName : 'firstName',
        lastName : 'lastName',
        email : 'email@yopmail.com'
    },
    crossDomain : true,
    jsonpCallback: "jsonpCallback",
    success : function(data) {
        alert(data);
    },
    complete : function(jqXHR, textStatus) {
                //can do something here
    },
    error : function (xhr, textStatus, errorThrown) {
        if(errorThrown=="jsonpCallback was not called") {
                console.log('caught it!');
        }
            },
    dataType : 'jsonp'
});

ウィンドウコンソールからの読み取り:

Resource interpreted as Script but transferred with MIME type text/json: "https://example.com/addUser…Name=firstName&lastName=lastName&email=email%40yopmail.com&_=1359646137496".

Uncaught SyntaxError: Unexpected token : 

caught it!

予想どおり、parseerror例外がスローされ、処理しようとしました。しかし、私の質問は、ブラウザが実際に応答{result:1}を取得しているので、それを解析する方法はありますか?

4

1 に答える 1

-1

データ型「json」を使用

$.ajax({
 url: getinstruments,
  dataType: 'json',
  success: function(data) {
  alert (data.firstName);
}
});
于 2013-02-15T06:29:09.527 に答える