0

为了测试 AngularJS,我从http://angularjs.org/主页上的“Wire up a Backend”示例中获取了以下代码。当视图在本地时,一切都按预期工作,但是当我将视图移动到另一个 URL 时,我得到 403。请参见此处的 jsbin 示例:

http://jsbin.com/olavok/1/edit

选项 ... 403(禁止) angular.min.js:99 XMLHttpRequest 无法加载 .... Access-Control-Allow-Origin 不允许来源http://jsbin.com 。

但是,jQuery 工作得很好。在同一个 jsbin 中,我添加了一个 jQuery ajax 调用,我们在日志中看到了 JQUERY SUCCESS。如果您查看结果,您会看到 jQuery 提供了视图。

关于如何让 Angular 发挥出色的跨站点功能有什么想法吗?我读到 Angular 正在为 DOM 使用“jQuery light”。有没有办法让角度回退并将jQuery用于ajax?

4

1 回答 1

0

It appears to be by design: http://docs.angularjs.org/api/ng.$http

Read the section on Cross Site Request Forgery (XSRF) Protection.

I just noticed the 403 is coming back from the OPTIONS verb, not GET. jQuery works because it simply does GET, but Angular's $http seems to play by the rules:

AngularJS performs an OPTIONS HTTP request for a cross-origin resource

于 2013-05-10T01:06:19.847 回答