日期:2014-05-16  浏览次数:20603 次

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跨域问题,网上看各种方案,均不合适,求高手给给解法
js?jquery?跨域 ajax

------解决方案--------------------
单单动前端无解
可以考虑 ajax发送请求给自己的网站后台  自己网站后台在真正发送该请求

另外可行的话 也可要求 目标网站后台 更改接口 开放跨域访问方式
------解决方案--------------------
网上都说用jsonp来解决,但是我也没搞懂。
我说说我的解决方法吧:
    先把你的请求发到自己的后台,后台在转发请求获取数据,后台不存在跨域的问题。
------解决方案--------------------
方法1:从服务端发起该http请求,能获得返回值,
方法2:站点http://sms.xuhongxiuxiu.com将该请求返回值处理为callback + "("+json+")"
的形式,callback来自地址栏参数callback,这样可以支持jquery的jsonp方式跨域ajax,参见:跨域ajax原理
------解决方案--------------------
看下能不能回 JS语句,用jsonp 方式来取