如何使用跨域查询进行身份验证

时间:2012-04-05 14:31:22

标签: jquery ajax

我想将我的应用程序与其他网站集成。我的网站会代表用户向其他网站发送帖子请求,这样就会在用户浏览器中设置cookie,而不是将用户重定向到该网站。用户无需提供身份验证详细信息。

我如何实现这一点,因为ajax不会调用跨域。

3 个答案:

答案 0 :(得分:1)

以下是如何使用AJAX进行跨域调用的示例: http://coding4life.wordpress.com/2012/03/30/making-cross-domain-calls-in-signalr/免责声明:这是我的个人博客)

它使用SignalR,但在内部使用jQuery。要在jQuery中激活跨域调用,您必须使用:

jQuery.support.cors = true

答案 1 :(得分:0)

你仍然可以使用ajax调用,但通过代理解析它!请查看此链接以获取更多详细信息。

http://benalman.com/code/projects/php-simple-proxy/docs/files/ba-simple-proxy-php.html

通过对远程php文件的一些调整,你可以让它在没有代理的情况下工作,但不能在Internet Explorer上工作。

我在应用程序中的跨域调用上使用该代理并且运行良好。

小心如果您想在链接中传递参数,则必须使用以下字符对HTML进行编码:

/ = %2F
: = %3A
& = %26
 (space) = %2520

否则代理php文件会给你一个错误。

在该网站上有一个工作示例,您可以测试输出。

希望这可以帮助您解决跨域问题。对我而言,它有效。

答案 2 :(得分:0)

正如其他答案所提到的,你可以使用代理或者cors。但请注意,cors与某些旧版浏览器不兼容。

另一个选择是使用jsonp进行跨域调用。