ajax - Azure 和 CORS Access-Control-Allow-Origin 使用 ajax 和 php

标签 ajax azure cors

首先,我不在我们世界的网络端,所以对后端人员要友善。

快速背景:出于个人需要,我开发了一个 google chrome 扩展。它们基本上是在 Chrome 窗口中加载的网页......是的,就是这样。一切都在客户端(脚本、样式、图像等),只有数据通过 ajax 调用来自服务器。 cron 作业每小时调用一个 php 脚本来生成两个文件。一、data.json 包含 json 格式的“最新”数据。另一种 hash.json 包含数据的哈希值。客户端 Chrome 应用程序使用本地存储。如果远程哈希与本地哈希不同,他只需从远程服务器检索数据文件即可。

由于我在 Azure 上有一个 BizSpark 帐户,所以我的第一个想法是:带有 php 脚本的 Azure 网站、一个简单的主页、生成的文件以及用于作业的 Azure 调度程序。

我已经在本地开发了所有内容,并且一切都运行良好...但是一旦在 azure 平台上,我就会收到此错误

XMLHttpRequest cannot load http://tso-mc-ws.azurewebsites.net/Core/hash.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:23415' is therefore not allowed access.

但我真正无法理解的是,我能够(你也会)使用我的浏览器获取该文件...所以我只是不明白...我也尝试根据我在 SO 和其他网站上找到的一些帖子来操作配置,添加额外的 header ,似乎没有任何效果......

有什么想法吗?

最佳答案

But what I really can't understand is that I'm able (and you'll be too) to get the file with my browser... So I just don't get it

因此,当您在浏览器地址栏中输入http://tso-mc-ws.azurewebsites.net/Core/hash.json时,它不是跨域请求。但是,当您从在不同域中运行的应用程序发出 AJAX 请求时(在您的情况下为 http://localhost:23415),这是一个跨域请求,因为 CORS 未启用您的网站,您会收到错误。

关于启用 CORS,请查看此帖子:HTTP OPTIONS request on Azure Websites fails due to CORS 。我从未使用过 PHP/Azure 网站,因此我的链接可能有误,但希望它能为您指明正确的方向。

关于ajax - Azure 和 CORS Access-Control-Allow-Origin 使用 ajax 和 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21378853/

相关文章:

azure - 将 Azure 应用服务的连接限制为一个 IP 地址

c# - StackExchange.Redis | TTL -2 |问题

asp.net-mvc - WebSecurity.InitializeDatabaseConnection 方法只能调用一次

angularjs - Angular POST 导致源 'http://evil.com/' 是不允许的

javascript - 为什么我对 Printful 的 API 的请求被拒绝访问?

php - 使用 AJAX 从 SQL 获取信息并放入表中

ajax - Primefaces/jsf 中的条件更新

使用 PouchDB 访问 Cloudant 时的 CORS 问题

javascript - php 中的分页。 AJAX、PHP、MYSQL

javascript - 如何在单击/提交提交按钮时先执行 php 函数然后执行 javascript 函数