js脚本跨域取值问题
我今天用AJAX请求一个内网网址,需求是返回一个JSON字符串格式的东西给我,只是一个简单的请求文本。代码如下
//为了保密,这里的URL采用了因特网上的一个公共资源,返回的是一个文本
$.ajax({
url: "http://www.ip138.com/iplink.htm&c="+currentTime+"&jsoncallback=?",
context: document.body,
success: function(){
//todo: //标记一
},
error: function(){
//todo: //标记二
},
complete: function(){
//todo: //标记三
},
});
以上代码里jsonText的readyState=0
//为了保密,这里的URL采用了因特网上的一个公共资源,返回的是一个文本
var jsonText = $.getJSON("http://www.ip138.com/iplink.htm&c="+currentTime+"&jsoncallback=?", {}, function(data){
//todo: //标记二
});
以上代码里jsonText的readyState=1
不管我是用AJAX请求还是用getJson请求都获取不到响应数据,也执行不到suncess方法,标记二和标记三倒是执行了,可是firebug显示状态码是200,但又执行到error和complete里去了,死活想不明白。用getJson用firebug看已经有响应数据,但是callback function死活进不去,readyState也是1的状态,研究了整整一天了,愁死人了。用AJAX请求更悲剧,连响应数据都没有,
各位有好的解决方法,望伸出援手啊!
------解决方案--------------------
友情帮顶..JS跨域请求可以用代理吧。
------解决方案--------------------我记得以前跨域的话用一个内嵌ifream吧然后读取ifream里面的东西
------解决方案--------------------
------解决方案--------------------jsonp
用httpwatch看下
原理就是
<script src=".....do?param=....&callback=?"></script>
callback({....})
让对方执行你的返回方法,并把数据作为参数传入
看你的返回似乎只是个json,没有看到方法