360瀏覽器 7.1版本相容模式,jQuery $.post 和$.ajax 跨域訪問失效
這幾天在做一個跨域訪問的時候
360瀏覽器、ie、谷歌、火狐,其中360 7.1版本沒有傳送ajax請求,其他都好用,
弄了很久,終於找到了原因,360 7.1版本不允許ajax跨域訪問:
後臺程式碼如下:
後臺程式碼使用的是spring mvc,
@RequestMapping("/send1")
@ResponseBody
public String send1(
HttpServletRequest request,HttpServletResponse resp){
resp.addHeader("Access-Control-Allow-Origin", "*"); //用來解決跨域的
String iPhone = request.getParameter("mobile");
// phoneService.sendMobileVerificationCode(iPhone);
System.out.println("2222222222222222222");
return "1";
}
前臺程式碼:
function fasongduanxin(){
var url = "http://127.0.0.1:8080/phoneModel/cellPhoneNumberVerification/send1.do";
var data={mobile:$("#shouji").val()};
$.post(url,data,function(rs){
if(rs==1){
alert('驗證成功');
}else{
alert('驗證失敗');
}
}
);
}
<input type="text" value="18543135810" id="shouji" /> 手機
<input type="button" value="123" id="456" onclick="fasongduanxin();" /> 傳送簡訊
解決方案:
使用 ajax 的script方法
後臺程式碼:
@RequestMapping("/send")
@ResponseBody
public String send(
HttpServletRequest request,HttpServletResponse resp){
resp.addHeader("Access-Control-Allow-Origin", "*");
String iPhone = request.getParameter("mobile");
return "var _$result='1';";
}
前臺程式碼:
function fasongduanxin(){
var url = "http://127.0.0.1:8080/phoneModel/cellPhoneNumberVerification/send.do";
var data={mobile:$("#shouji").val()};
$.post(url,data,function(rs){
rs=_$result;
if(rs==1){
alert('驗證成功');
}else{
alert('驗證失敗');
}
},
'script');
}