var tep="网络原因出错";
tep=$.ajax({
url:"http://openapi.baidu.com/public/2.0/bmt/translate?client_id=2ALMz6WqUEcsBg4BS91Eppq3&q="+str+"&from=auto&to=auto",
type:"post",
dataType:"html",
data: "name="+vg,
error: function(){
// alert("Http status: "+xhr.status+" "+xhr,statusText+"\najaxOptions:"+ajaxOptions+"\nthrownError:"+thrownError+"\n"+xhr.responseText );
alert("请设置:Internet选项-安全-自定义级别-其它-跨域访问数据源设置为“启用”状态");
},
success:function(msg)
{
var msg = eval("("+msg+")");//接受翻译后返回来的结果
obj.innerHTML=msg.trans_result[0].dst;//翻译后的结果
}
});
是什么错误?跨域访问失败了?
这个没弄过,所以没办法给你什么支持,不过你可以:
1、尝试跨域访问一个随便的网页,看是否能获得结果
2、如果不能获得结果,那是跨域访问限制了。
3、如果能获得结果,那是你调用的这个目标地址被限制了。
先把问题点确定下来,其中,你可以使用FIDDLER(fiddler2.com可下载)跟踪下数据。
将ie安全设置 里面的 “跨域访问数据源” 就可以返回结果了,但是作为我们自己明白是ie的安全问题 但是站在客户端着想,总不能让每个客户都这样弄 那样显得你的网站太不好了吧,所以希望大家帮忙下
@lin_yue: 这个问题。。。
浏览器既然有限制,自然是为了安全着想,假如。。。能在网页里通过代码来解决这个问题,那么,这个安全的限制也就失去了意义。
不过,我倒是知道一个方案(但具体的还是忘记了),能在配置后忽略这个安全设置,只是这个设置是对双方都要进行信任级别控制的,也就是说,需要在百度的这个网站下面配置下允许来自你的网站下的跨域访问,类似于FLASH下的沙箱(SL里也有,SandBox),但这个方案,显然是不可行的(你不可能去要求百度为你修改,百度也不可能为所有的用户提供修改)。
解决你这个问题的另外一个方案就是在服务器操作了。在服务器写一个服务,实现这个请求的代理功能,由这个服务去访问第三方的服务(如你要做的这个百度的服务)
用getJson
这个是浏览器为了安全一般不允许跨域访问数据的!经过设置之后才可以!
尽量不要跨域,比较麻烦。
是否可以考虑webservice 来满足要求
谢谢各位了。
楼主:我也遇到你同样的问题 能否帮忙说下 你怎么解决的啊