我使用靜態html/javascript頁面(無php等)使用XMLHttpRequest和表單調用URL有什麼區別?
我有一個靜態的HTML網頁。當頁面加載時,它會向另一個域上的目標服務器發送XMLHttpRequest,等待響應並解析響應JSON。
function executeRequest() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
var response = JSON.decode(xhttp.responseText);
alert(response.access_token)
alert(response.expires_in)
}
};
var tmpURL = "https://target.url.com/oauth2/access_token"
xhttp.open("POST", tmpURL, true);
xhttp.send();
}
的XMLHttpRequest不能加載[target.url.com]否「訪問控制允許來源」 頭存在於所請求的資源。 原產地'https://local.url.com'因此不允許訪問。
爲了排除CORS的問題,我可以請求帶有表單的URL。當用戶點擊提交按鈕時,它會帶來成功的迴應。
<form method="POST" action="https://target.url.com/oauth2/access_token">
... form inputs here
<input type="submit" value="Submit form">
</form>
爲什麼目標服務器對xmlHttpRequest的響應方式與Form不同?
*「來排除問題CORS,我可以用形式請求URL。」 *這並不排除或CORS,CORS不適用於跨域的形式發佈。基本上允許交叉數據發送數據,但是讀取數據的交叉來源是CORS進入的地方。你的問題是CORS。 –
你有CORS問題,如果你得到一個'不「訪問控制允許來源」標頭present'錯誤...看看,你得到那些 –