Javascript/jQuery ajax帮助需要
我在这里有点困惑,也许有人可以帮助。Javascript/jQuery ajax帮助需要
1)Javascript ajax请求问题:我可以使用XMLHttpRequest直接向任何其他网站发出请求 - 不是始发服务器吗?
2)JQuery ajax请求问题:我可以使用$ .ajax直接向任何其他网站发出请求 - 不是始发服务器吗?
浏览网页时,我发现了一些有关XSS(跨站点脚本)可能被禁止的东西,并且解决方法是使用服务器脚本语言和webservice ...但不管我怎么想都不关心。
如果有人能回答,请帮忙!
您不能跨站点ajax请求。当您使用jquery $ .ajax从不同的域中获取数据时,jquery在后台获取url并在文档头中追加一个include。
你是对的,由于安全原因,这是被禁止的。
我相信这里有一些术语混淆。这与XSS无关。您无法通过不同域名获得javascript信息的原因(即使是在相同域名上的http与https)也是由于相同原产地策略的原因,该策略的存在是为了防止信任站点上的会话与不信任的站点混淆,直接干预(例如通过选择访问不同的域)。 XSS是一个完全不同的概念,它涉及将脚本输入到页面以及用户的恶意目的。
至于访问跨域所有希望不会丢失。 XMLHttpRequest与.ajax()无关紧要,但jsonp允许跨域交换信息。由于也引入了HTML5,postMessage()
,它允许跨域通信(并且脚本不会少于!)
是的,使用JSONP是可能的。使用这样的:
$.ajax({
url: 'remote_url',
type: 'post',
dataType: 'jsonp', //This does the trick
success: function(remoteData){
//Use remoteData here. Note it's already json parsed, so it's a javascript object
}
});
希望这有助于
jsonp请求不被解析为json,返回实际上是任意的javascript,并且由浏览器在脚本标记中进行评估。通常情况下,jsonp用于获取已知的返回有效的json对象,以便您的回调将处理该解析并执行所需的操作。然而,假设jsonp请求返回一个json对象,或者甚至将json的返回解析为不正确的。 – ryanmarc 2011-05-05 14:37:27
1) Javascript的ajax请求问题:我可以使用XMLHttpRequest直接向任何其他网站发出请求 - 而不是始发服务器?
不,您尝试连接的域中的服务器必须接受cross-domain AJAX;否则,访问这些数据的唯一方法是在服务器上使用一个页面,该页面将请求的数据代理给访问者。
2)JQuery ajax请求问题:我可以使用$ .ajax直接向任何其他网站发出请求 - 不是始发服务器吗?
jQuery AJAX技术实际上是原生XMLHttpRequest的一个包装,所以如果正常的XMLHttpRequest起作用,jQuery也应该如此。
你的后端是什么? – kobe 2011-05-04 04:33:12