日期:2014-05-17  浏览次数:20782 次

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里面的东西
------解决方案--------------------
探讨
友情帮顶..JS跨域请求可以用代理吧。

------解决方案--------------------
jsonp 
用httpwatch看下
原理就是
<script src=".....do?param=....&callback=?"></script>

callback({....})

让对方执行你的返回方法,并把数据作为参数传入

看你的返回似乎只是个json,没有看到方法