0

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

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

4

3 回答 3

1

Here is an example on how you can do cross domain calls with AJAX: http://coding4life.wordpress.com/2012/03/30/making-cross-domain-calls-in-signalr/ (Disclaimer: It's my personal blog)

It uses SignalR, but internally this is using jQuery. To active cross domain calls in jQuery you have to use:

jQuery.support.cors = true
于 2012-04-05T14:39:42.667 回答
0

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

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

于 2012-04-05T14:59:30.257 回答
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 文件会给你一个错误。

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

希望这可以帮助您解决跨域问题。对我来说,它奏效了。

于 2012-04-05T14:46:15.437 回答