url地址跨域:當前url地址的域名與要跳轉的url地址中的域名不一樣
如果使用以下的ajax,請求參數類型設置為contentType:"appliaction/xml;charset=utf-8",請求類型設置為type: "POST"
<script type="text/javascript">
$(function(){
$(".submit").click(function(){
var xmlDocument = '<xml><a>123</a><b>123</b></xml>';
$.ajax({
type: "POST",
url:"url",
contentType:"appliaction/xml;charset=utf-8",
data: xmlDocument,
dataType:"xml",
success:function(data){
if (data.xml) {
//IE
alert(data.xml);
}
else {
//火狐
var oSerializer = new XMLSerializer();
alert(oSerializer.serializeToString(data));
}
},
error: function(e) {
alert(e);
}
});
});
});
</script>
請求正文為:
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
origin: null
Connection: keep-alive
其中,
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
兩項會自動加上,並且請求方式改為OPTION,請求的參數會忽略
這兩項是用於提醒服務器在接下來的請求中將會使用什么樣的方法來發起請求
結論:當url跨域時,第一次請求會自動改為OPTION方式的請求用於探測后續真正需要發起的跨域 POST 請求對於服務器來說是否是安全可接受的,因為跨域提交數據對於服務器來說可能存在很大的安全問題。