跨域访问post请求
‘壹’ 濡备綍POST璺ㄥ烟璇锋眰
/**
* Jsonp for get data form backend
* */
$.JsonpRequest = function(url, successHandler) {
$.ajax({
type : "GET",
async : false,
url : url,
dataType : "jsonp",
jsonp : "jsonpCallback",
success : function(data) {
successHandler(data);
},
error : function() {
//todo
}
});
};
椤圭洰閲屾憳鍑烘潵镄勶纴鍙浠ョ洿鎺ヨ繍琛岋纴钖庣鐩存帴杩欐牱杩斿洖json 瀛楃︿覆鍗冲彲 jsonpCallback (" + json + ")
‘贰’ post方式请求怎么解决跨域问题
服务端设置支持跨域
主要是Access-Control-Allow-Origin头参数,该参数用来指定允许哪个来源的域请求。服务端代码如下:
//表示支持所有来源的域进行请求
//实际在操作过程中可以设置为指定域
header('Access-Control-Allow-Origin:*');
$data=json_encode(array("id"=>"1","name"=>"tom"));
echo$data;
对应的js代码:
$.ajax({
type:"POST",
url:"http://127.0.0.1/~chenjiebin/mycode/php/crossdomain/header.php",
dataType:"json",
success:function(data){
console.log(data);
}
});
‘叁’ jquery璺ㄥ烟鍙戦丳ost璇锋眰璇ユ庝箞澶勭悊
POST璺ㄥ烟 瑙e喅鏂规: CORS
缁欐湇锷$鏁版嵁澶勭悊婧愮爜娣诲姞Header澶淬
渚嫔傛垜鏄痑sp镄勮娉曪纴链嶅姟绔銮峰彇鏁版嵁浣跨敤锛
<%
Response.AddHeader "Access-Control-Allow-Origin", "*"
response.write("[{'rid':1, 'rname':'001'}, {'rid':2, 'rname': '002'}]")
%>
链鍦瘾jax锛
$.ajax({
url:url,//杩灭▼url
async :false,
type:"POST",
success:function(data){
//var a=JSON.parse(data);
var html = "";
alert(data);
},
error:function(){
alert("error");
}
});
鏄剧ず锛
‘肆’ post瀹炵幇璺ㄥ烟锛屽吋瀹规уソ镄勶纴涓や釜缃戠珯閮芥槸镊宸辩殑 镐庝箞瀹炵幇
灏濊瘯浣跨敤CORS鎶链锻锛熷湪浣犺璇锋眰绔镄勫簲鐢ㄦ湇锷″櫒涓婄殑web.xml鏂囦欢閲屾坊锷焘ors鐩稿叧瀛楁碉纸鍏蜂綋閰岖疆镙规嵁浣犵殑闇姹傦纴鎴戞祻瑙堣繃镄勫逛簬CORS链哄埗浠嬬粛姣旇缉璇﹀敖镄勪竴绡囨枃绔犳槸锛缃戦〉阈炬帴锛夛纴浣夸箣鍏佽歌法锘熻块梾銆俻ost鏂规硶涔熸槸鍙浠ヨ法锘熺殑銆