javascript - AngularJS Web App 缺少 CORS header 'Access-Control-Allow-Origin'

标签 javascript ios angularjs rest cors

我正在开发一个 AngularJS 网络应用程序,我正在通过在本地运行该应用程序进行测试,例如它不在服务器上。我一直遇到以下错误:

跨源请求被阻止:同源策略不允许读取位于(原因:缺少 CORS header “Access-Control-Allow-Origin”)的远程资源。1(未知)

我的 SO 研究告诉我这是服务器端的错误,但我已经成功地从我在模拟器中运行的 iOS 应用程序取回数据并成功使用了 Postman。

根据建议,我正在通过 http-server 运行该应用程序。同样的问题。

我添加了一个具有相同结果的简单测试用例:

$http.get("http://www.yahoo.com")
.then(function (response) {
    alert("Search Results: " + response);
}, function(error) {
    alert("Could not get to Yahoo");
});

这完全令人费解。

最佳答案

基于此评论:

I'm developing an AngularJS web app and I'm testing by running the app locally, e.g. it's not on a server

那么这不起作用的原因很明显:如果您不是从网络服务器运行 javascript(http://而不是 file:///).这是一种几乎所有浏览器都内置的安全措施。您可以通过使用某些标志启动浏览器来解决这个问题;例如,对于 Chrome,您可以从命令行 chrome --allow-file-access-from-files file:///[PATH_TO_FILE]

运行

但是建议您只从网络服务器运行 javascript。这非常简单,您可以使用节点包 http-server或 Python 的 SimpleHTTPServer直接从文件所在的目录提供文件。

关于javascript - AngularJS Web App 缺少 CORS header 'Access-Control-Allow-Origin',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38128008/

相关文章:

ios - 提交到Apple App Store:指定品牌名称作为个人开发人员?

ios - Xcode UITableView 放置和单元格分隔符

angularjs - Webpack 正在加载模块两次

javascript - 如何触发自定义事件以触发部分表单验证?

javascript - 如何在 Electron 应用程序中集成浏览器?

javascript - 我怎样才能从一个字符到JavaScript中的UTF 16等效

javascript - 添加删除的选择选项

javascript - jQuery 只为被点击的元素运行函数

ios - EXC_BAD_ACCESS (SIGSEGV) 上的 KERN_INVALID_ADDRESS

javascript - 如何在 AngularJS 指令中对 Controller 进行单元测试?