ajax post 变options,关于ajax:JQuery POST请求转换为OPTIONS。 为什么?
我明確指定了POST,但在Request中看不到該Post數據,并且超過了它指定了OPTIONS。
響應應為HTML,以表格格式指定要與Query匹配的用戶。
我正在嘗試發布和閱讀html,以創建一個自動完成的輸入框。
這是jQuery代碼:
$.post('https://internal.company.com/data/displayUserList',
{ Email:"", Name:"%GEORGE%"},
function(responseText, textStatus) {
console.log("Response:
" + responseText + textStatus)
}
);
FireBug1.6.1(Firefox)捕獲的請求
OPTIONS /data/displayUserList HTTP/1.1
Host: internal.company.com
User-Agent: Mozilla/5.0 Firefox/3.6.8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Origin: null
Access-Control-Request-Method: POST
關于SE上的jQuery,有許多與此相關的問題。 請參閱"相關",這里討論了可能的解決方案:stackoverflow.com/questions/2699277/post-data-to-jsonp
如果您違反相同的原始策略限制,則可能會發生這種情況。 Access-Control-Request-Method請求標頭使我認為是這種情況。 我看到您在發帖請求中指定了完整地址https://internal.company.com/data/displayUserList。 確保托管此腳本的頁面也源自https://internal.company.com。 最好是使用相對地址:
$.post('/data/displayUserList', { Email:"", Name:"%GEORGE%" },
function(responseText, textStatus) {
console.log("Response:
" + responseText + textStatus);
}
);
是。我正在嘗試在另一個網頁中發布URL,但是頂級域名是相同的" company.com",我將檢查" document.domain"是否相同。我還注意到從瀏覽器觸發" internal.company.com/data/displayUserList"時發送的Cookie信息很少。有沒有辦法我可以捕獲它們并隨此請求發送?
協議是否相同?請注意,HTTP vs HTTPS違反了相同的原始策略。就cookie而言,如果已將cookie設置為具有等于頂級域的domain屬性,則它們將沿著AJAX請求自動發送,以便可以在這些域之間共享它們。
是的,協議是HTTPS。我注意到Cookie除了OPTIONS問題外沒有被拾起。我應該更改通話中的任何內容嗎?
@hashg,域必須匹配:https:internal.company.com和https:company.com不相同,并且違反了該策略。請查看答案中鏈接到的Wikipedia文章,并確保域和子域完全匹配。否則,您的AJAX調用將始終失敗。
如果您嘗試在另一個域中調用其他服務器,則解決此問題的策略應放在后端,以使服務器允許來自其他前端域的調用,在這種情況下,您不應該費勁地嘗試 在前端進行調整。
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的ajax post 变options,关于ajax:JQuery POST请求转换为OPTIONS。 为什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html 方式使用iview,VUE之i
- 下一篇: android jobb工具,andro