簡體   English   中英

IE中帶有數據的jQuery Cross Domain Post

[英]jQuery Cross Domain Post in IE with Data

CORS在我的應用程序中完美適用於Chrome,Firefox。 使用此插件https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest

我能夠在IE中獲得CORS請求,如下所示:

$.ajax({
    url: url,
    type:"POST",
    dataType: "json"
});

但是,當我嘗試在POST請求中發送數據時,例如:

$.ajax({
    url: url,
    type:"POST",
    dataType: "json",
    data: {test: 5}
});

這是行不通的。 有沒有人設法讓IE發出包含POST數據的CORS請求?

謝謝!

我注意到在jQuery-ajaxTransport-XDomainRequest源代碼中,傳遞userOptions.data的send函數調用被注釋掉了,並且活動的send()調用沒有參數:

我遇到了與POST相同的問題,沒有數據進入服務器。 所以我將數據調用發送取消注釋為:

xdr.send(userOptions.data);
//xdr.send();

但它仍然沒有發送數據。 所以我將類型從'POST'更改為'GET並更新了我的服務器代碼來處理它。 那真的有用了! 我沒有做更多的測試,我不確定GET是否可以接受我正在開發的代碼。

更新:我進一步測試並使用send()或send(userOptions.data)似乎對IE沒有任何影響。 正是對GET的更改使其工作,因此如果必須在ajax代碼中使用POST,則POST仍然是一個問題。

由於我是跨域ajax數據發布的新手(IE是問題),我希望其他人會發布他們的發現,所以它適用於POST和GET。 感謝你的幫助!

jQuery-ajaxTransport-XDomainRequest實現,至少從今天開始,在幾個方面存在缺陷 ,特別是它不會在POST中發送任何數據。 我建議使用這個插件,而不是我們已經有了很好的結果: https//github.com/jaubourg/ajaxHooks/blob/master/src/xdr.js

我還建議閱讀這篇文章,它解釋了微軟實施XDomainRequest的所有缺陷和局限: http//blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and- workarounds.aspx

另請參閱此主題以獲取相同主題的帖子: 在IE8 / 9中使用jQuery和XDomainRequest的CORS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM