实时混合应用程序没有 'Access-Control-Allow-Origin' 问题

No 'Access-Control-Allow-Origin' issue on live Hybrid App

我完成了我的第一个混合应用程序的开发。它在本地主机上运行顺利。但是当我试图让它生效时,我得到了这个错误。

XMLHttpRequest cannot load https://www.example.com/app/login.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 500.

为什么会这样?

这是根据我的 ajax 请求设置的示例:

$.ajax({
           type: "POST",
           url: "https://www.example.com/app/login.php",
           crossDomain: true,
           dataType: 'json',
           data: $.trim(frm.serialize()),
           timeout: 10000,
           beforeSend: function() {                  
              $('#loader').css({
                display: "block"
               });
  }

然后在我的 php 服务器代码上:

<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
header('HTTP/1.1 200 OK');
{
//more code here..

echo json_encode($result_array);
}

如您所见,我已经添加了 header Access-Control-Allow-Origin: *,但它似乎不起作用。我需要知道什么才能消除此错误?或者应该是什么可能的问题呢?

更新:在 firefox 中,这是控制台日志错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.example/app/login.php. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing)

有什么帮助吗?我正在使用 intel xdk 构建我的应用程序。

我认为您的问题与 access-control

无关

来自你的错误:

The response had HTTP status code 500

表明您的应用程序崩溃了。结果,Access-Control-Allow-Origin header 从未正确设置。当 access-control 是问题时,浏览器(无论如何是 Firefox)显示状态代码 401 Unauthorized,而不是 500 server error

在您的错误日志中查找崩溃原因。也尝试禁用 .htaccess 并查看错误是否仍然存在,因为 rules/config 损坏是导致崩溃的常见原因

ajax 发送错误为 500 Internal Server Error 因为服务器端(php 代码)有问题,其中使用的功能是更高的 PHP 版本.我的主机 php 版本低于我在本地计算机上使用的版本。尝试重写代码并首先在线测试其响应数据解决了我的问题。 ajax请求码没有问题