【问题标题】:IOS Webpage - Not Allowed by Access Control Allow OrginIOS 网页 - 不允许访问控制允许来源
【发布时间】:2012-07-06 18:03:41
【问题描述】:

我正在做一个简单的 ajax 请求,例如:`

$.ajax({
type: 'POST',
url: 'http://' + serverIP + '/saveJSON.php',
crossDomain: true,
data: 'helloooooooooo',
dataType: 'text',
success: function(responseData, textStatus, jqXHR) {
    var value = responseData.someKey;
     console.log(responseData);
    console.log(textStatus);
},
error: function (responseData, textStatus, errorThrown) {
    alert('POST failed.' + responseData);
    console.log(responseData);
    console.log(textStatus);
}
});`

当在 IOS Safari 中运行时,我得到了错误...

"XML HttpRequest 无法加载...... Orgin ... 访问控制允许 Orgin 不允许

...是替换长网址的

我知道我的 chrome 我可以通过加载带有 -disable-web-security 或其他标志的 chrome 来绕过它。

如何在 iOS 中解决这个问题?安全不是问题,因为设备将被锁定并且只允许特定 IP 地址之间的通信。

还有其他方法可以从 JavaScript 中的服务器 php 脚本中检索信息吗?那会被允许吗?

此外,任何指向使用 PHP 进行 AJAX 通信的优秀网站的链接都会有所帮助。

补充一点,客户端使用/看到的所有页面都是 HTML (.html) 而服务器端是 (.php)

此外,当关注THIS 链接以对该问题进行排序时,我将标题添加到我的 IIS 6 中,因为我的 html 是托管的,而 ipad 仍然不允许这样做。

谢谢大家

【问题讨论】:

    标签: javascript html ios ajax cross-domain


    【解决方案1】:

    您可以通过添加Access-Control-Allow-Origin 标头来做到这一点。

    在 PHP 中,它可以通过在 PHP 文件中添加新标头来实现:

    header('Access-Control-Allow-Origin: *');
    

    【讨论】:

    • @user983969 此更改必须是服务器端的
    • 所以我将它添加到我的 php 文件中以获取数据?或在服务器上的 html 文件中?或者它是一个实际的服务器文件?
    • 我现在明白了,但是客户端接收的所有文件都是 .html 它唯一客户端发布到的 php 文件是 .php ,抱歉我编辑了我的问题
    • 您使用的是什么网络服务器?阿帕奇?
    • 当前使用便携式 USB 服务器存储 php 文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2017-01-10
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 2015-06-18
    • 2017-12-28
    相关资源
    最近更新 更多