ajax调用短信接口时出现跨域问题无法得到返回值,求高手指教
$.post("http://sms.xuhongxiuxiu.com/Update/SYS_SMSSEND_IO2.asp",
{
version: "300",
SMSID: "002",
Action: 2,
Customer: "test",
Pwd: "123456",
Mobile: document.getElementById("SMS_Mobile").value,
message: $("#Message").val()
},
function (data) {
alert(data);
})
});
用js调用一个短信接口,取不到返回值,反复验证后,确认是js跨域问题,网上看各种方案,均不合适,求高手给给解法
------解决方案--------------------单单动前端无解
可以考虑 ajax发送请求给自己的网站后台 自己网站后台在真正发送该请求
另外可行的话 也可要求 目标网站后台 更改接口 开放跨域访问方式
------解决方案--------------------网上都说用jsonp来解决,但是我也没搞懂。
我说说我的解决方法吧:
先把你的请求发到自己的后台,后台在转发请求获取数据,后台不存在跨域的问题。
------解决方案--------------------方法1:从服务端发起该http请求,能获得返回值,
方法2:站点http://sms.xuhongxiuxiu.com将该请求返回值处理为callback + "("+json+")"
的形式,callback来自地址栏参数callback,这样可以支持jquery的jsonp方式跨域ajax,参见:跨域ajax原理
------解决方案--------------------看下能不能回 JS语句,用jsonp 方式来取