我想使用Ajax調用發出POST請求,但是我收到狀態碼爲0的錯誤,其中所有請求參數都在Advanced REST Client中工作。Javascript Ajax調用不工作?
mycode的:
<button>Post</button>
$('button').click(function(e) {
e.preventDefault();
$.ajax({
url: "https://api.sendgrid.com/v3/mail/send",
type: "POST",
contentType : 'application/json',
headers : {
'Authorization' : 'Bearer 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',
'Content-Type' : 'application/json'
},
data: JSON.stringify({
"personalizations": [{
"to": [{
"email": "[email protected]"
}]
}],
"from": {
"email": "[email protected]"
},
"subject": "Great, World!",
"content": [{
"type": "text/plain",
"value": "Cool OK!"
}]
}),
dataType: "json",
success: function (response) {
var resp = JSON.parse(response)
alert(resp.status);
},
error: function (xhr, status) {
alert("error : "+status+" :: "+JSON.stringify(xhr));
}
});
});
這是我上面的代碼,在運行它不斷拋出錯誤說
{"readyState":0,"responseText":"","status":0,"statusText":"error"}
還要檢查在jsfiddle
請幫我,建議我一些解決方案,我無法找到問題我代碼。
這是投擲'405方法不允許'請檢查你正在發送的參數和服務層的相關方法 – brk
是405但相同的請求參數在高級休息客戶端工作正常.. –
我建議使用Fiddler來通過Advance Rest Client發送請求時的樣子,以及使用上述代碼發送請求時的樣子。我認爲這是關於CORS的。當您嘗試發佈到不同的域時,瀏覽器使用OPTIONS動詞發送優先請求,並且對於該請求,您將得到NOT ALLOWED響應(因爲服務器不支持此http動詞),這就是爲什麼POST不會工作。 – xxxmatko