在客户端使用jQuery,我想知道我是否可以检查链接URL是否有效(即不返回404)。此链接指向另一个域,因此如果我只使用$ .get(),那么我最终会遇到权限问题。我记得读过一些关于使用JSONP请求的内容,但我不记得了。
答案 0 :(得分:4)
我找到了一个似乎有用的解决方案(使用YQL):
$.getJSON("http://query.yahooapis.com/v1/public/yql?"+
"q=select%20*%20from%20html%20where%20url%3D%22"+
encodeURIComponent(url)+
"%22&format=xml'&callback=?",
function(data){
if(data.results[0]){
// do whatever
}
}
);
假设您要检查的网址位于变量'url'。
答案 1 :(得分:1)
如果您调用的服务器可以返回JSONP格式的响应,则JSONP有效。这基本上意味着一个脚本在加载后调用页面上的回调函数。 见http://en.wikipedia.org/wiki/JSON#JSONP
在您的情况下,除非其他网站愿意合作或您在自己的网站上拥有代理脚本,否则它将无效。
如果您希望脚本与不受您控制的网站一起使用,最好的办法是使用代理或iframe黑客。
答案 2 :(得分:0)
您无法向其他域提出此类请求。这是浏览器中的安全功能。您可能必须尝试在iframe或其他内容中执行某些操作并进行检查。
答案 3 :(得分:0)
jsonp不会对你做多...
您应该使用自己喜欢的语言在服务器上轻松创建本地代理,只需加载传递给它的网址并返回响应代码即可。然后,使用jquery ajax加载具有您要测试的URL的代理页面。