2014-07-23 60 views
0

我正在編寫一個可以進行服務調用的chrome擴展。交叉原點ajax請求未通過JSON格式的請求有效負載

當我做一個相同的起源POST Ajax請求,我的數據對象被傳遞JSON格式:

$.ajax(sameOriginURL, { 
    data : { 
     "foo1": "bar1", 
     "foo2": "bar2" 
    }, 
    dataType: "json", 

    headers: { 'Content-Type':'application/json'} 
}) 

在Chrome調試器,當我看到POST請求,請求負載顯示爲:

{ContentType: "JSON", foo1: "bar1", foo2: "bar2"} 

但是,當我做交叉起源requst(在地方sameOriginURL的這一請求插入crossOriginURL),在Chrome中調試程序一樣,發佈請求顯示了請求負載,因爲這:

foo1=bar1&foo2=bar2 

和我打電話的服務不喜歡,所以它會引發序列化異常。如何將我的請求負載傳遞爲JSON對象。

回答

3

找到一個答案在這裏:JQuery Post sends form data and not JSON

我所要做的就是包裹了JSON.stringify我的數據對象和它的工作!

$.ajax({ 
    type: 'POST', 
    url: '<url>', 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    data: JSON.stringify(object) 
});