在客户端使用jQuery,我想知道我是否可以检查链接URL是否有效(即不返回404)。这个链接指向另一个域,所以如果我只使用$ .get(),那么我最终会遇到一个权限问题。我记得阅读了一些关于使用JSONP请求的内容,但我不记得。使用jQuery检查另一个域上的URL是否为404?
1
A
回答
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
}
}
);
假设您想要查询的网址是在变量“网址”。
1
如果您要调用的服务器可以返回JSONP格式的响应,那么JSONP将起作用。这基本上意味着一个脚本在加载后在页面上调用回调函数。 请参阅http://en.wikipedia.org/wiki/JSON#JSONP
在您的情况下,除非其他站点愿意合作或您在自己的站点上有代理脚本,否则它将不起作用。
如果您希望您的脚本与不受您控制的网站一起使用,那么最好的办法是使用代理或iframe黑客。
0
您无法向其他域请求这样的请求。这是浏览器中的一项安全功能。你可能不得不尝试在iframe或其他东西中做某些事情并检查它。
0
JSONP不会做你多......
你应该做的是使用你喜欢的语言的服务器会简单地装载您传递给它的URL并返回响应代码上轻松创建一个本地代理。然后,使用jquery ajax加载您想要测试的url的代理页面。
+0
不幸的是我没有选择本地代理(我只在服务器上有一些自定义选项 - 一些自定义的HTML地方,我可以加载JavaScript)。 – 2010-01-23 14:31:45
相关问题
- 1. 使用jquery检查URL是否有效
- 2. 检查跨域URL是否给出404与javascript
- 3. 检查url是否返回404
- 4. 检查URL是否有效-404/Not Found
- 5. 检查用户是否在另一个域中登录
- 6. 如何检查url是否使用Python重定向到另一个url
- 7. Roku SceneGraph - 检查URL为404
- 8. 检查另一个域
- 9. jQuery检查是否跨域调用
- 10. 检查URL是否为Google
- 11. jQuery - 你可以检查一个类是否有另一个类?
- 12. 安全地检查用户是否在另一个域(JSONP)上登录
- 13. 检查一个数是否为另一个(其反向)的镜
- 14. 检查是否使用jquery
- 15. 是否有可能使用jQuery从另一个域获取XML?
- 16. 如何检查一个jQuery的obj是否包含另一个jQuery的obj?
- 17. Laravel - 检查是否存在另一个URL前缀
- 18. 检查值是否在另一个表
- 19. 检查元素是否包含jQuery中的另一个元素
- 20. 检查用户是否在另一个lotusCalendar上编辑权
- 21. 检查URL是否可用使用AngularJS
- 22. 查看来自一个域的用户是否存在另一个域
- 23. Vb.net检查一个数是否是另一个数的多重
- 24. 如何检查一个ALAsset是否仍然存在使用URL
- 25. 检查一个url是否用PHP返回一个图像?
- 26. jQuery/canvas:检查矩形是否穿过另一个矩形
- 27. 使用httpwebrequest检查url是否存在
- 28. 使用PHP检查URL是否存在
- 29. jquery - 检查URL上是否存在查询字符串?
- 30. 检查是否在一个jQuery集合
来自http://api.jquery.com/jQuery.getJSON/的文档: 如果指定的URL位于远程服务器上,请将该请求视为JSONP。有关更多详细信息,请参阅$ .ajax()中关于jsonp数据类型的讨论。 – 2010-01-22 19:10:58
@TahirAkhtar这是使用JSONP来要求雅虎去检查你是否存在页面。这就像其他人所建议的本地代理解决方案,但使用第三方代理(雅虎),而不是本地代理。 – rjmunro 2012-03-26 10:47:37
啊,非常感谢!你为我节省了很多工作!这有助于我制作一个脚本来检查另一个网站上的URL是否已经死亡。 – 2012-04-04 23:47:48