我正在尝试向.asp API发出ajax http发布请求。问题是Chrome控制台给了我
选项http://www.myurl.com/api.asp 405(不允许使用方法) 从源'null'对'http://www.myurl.com/api.asp'处XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:邮件头上没有'Access-Control-Allow-Origin'标头要求的资源。使用HTML表单发布效果完美。是不是很奇怪?
HTML代码
<form action="http://www.myurl.com/api.asp" id="a_form" name="a_form" method="POST">
<table>
<tbody>
<tr>
<td>name1:</td>
<td><input name="name1" maxlength="30"></td>
</tr>
<tr>
<td>name2:</td>
<td><input name="name2" maxlength="30"></td>
</tr>
</tbody>
</table>
</form>
<input type="button" value="submit" onclick="document.a_form.submit();" id="button1" name="button1">
jQuery代码
$.ajax({
url: 'http://www.myurl.com/api.asp',
data: {
name1: "test",
name2: "test67"
},
type: "post",
success: function(response) {
console.log(response);
},
error: function(textStatus) {
console.log(textStatus);
}
})
html和ajax请求之间是否有区别? 我也尝试过头文件:{'Access-Control-Allow-Origin':'*'},但没有用。 另外,该服务器不是我的服务器,因此我无法在其中进行任何更改。
感谢阅读
答案 0 :(得分:0)
该服务器也不属于我,因此我无法在此进行任何更改。
您必须在服务器上进行更改才能启用CORS,从而允许浏览器向其他域发出AJAX请求。出于安全原因,这是设计使然。有关更多信息,请参见此:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS。