javascript - 我的ajax方法不起作用,

标签 javascript jquery ajax cordova

在控制台日志中收到以下消息 原因:CORS header “Access-Control-Allow-Origin”丢失 所以我检查了一些堆栈溢出解决方案,但无法解决某些可以帮助我解决它的问题。

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
    $(document).ready(function () 
    {
    var save_temp = {
                 "token": "e2c420d928d4bf8ce0ff2ec19b371514"
                  };
             var comment_data = JSON.stringify(save_temp);

    //alert(comment_data);
    var request = $.ajax({
       url: "http://vyhub.com/irmtapi/dailyreport/checkReport",
       type: "POST",
       data:comment_data,
       contentType: "application/json; charset=utf-8",
       dataType: 'json',
    });

    request.done(function(msg)
    {
      // $("#log").html( msg );
    alert(msg)
    });

    request.fail(function(jqXHR, textStatus) {
       alert( "Request failed: " + textStatus );
    });

    });

    </script> 

最佳答案

这显然是服务器端代码的问题,它没有发送正确的 header 来允许跨源请求共享。您需要enable CORS通过两种方式在 Apache Server 中使用 PHP。

方法 1:使用 Apache 服务器的设置。

使用 Apache 的 .htaccess,您可以通过添加以下行来启用 CORS:

Header set Access-Control-Allow-Origin "*"

为此,您需要确保启用 mod_headers 模块。您可以使用 sudo a2enmod headers 来启用此功能。为此,您需要 sudo 权限。另外,在更改配置后,您需要使用 sudo service apache2 reload 重新启动 Apache Server。

方法 2:使用 PHP 代码。

或者,如果您对服务器管理没有太多控制权,则可以在响应您的请求的脚本中启用它。只需将其添加到 PHP 文件的顶部,以便浏览器允许 AJAX 访问:

<?php
  header("Access-Control-Allow-Origin: *");

如果您还有任何疑问,请告诉我。欲了解更多信息,请参阅以下引用资料:

关于javascript - 我的ajax方法不起作用,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39892580/

相关文章:

javascript - 如何在 Symfony 中使用 Composer 包中的 javascript

javascript - 动态更改表单操作 URL 无效

javascript - 不需要 jQuery 表单处理 : require vs.

javascript - 有谁知道 javascript 中的下拉菜单插件?

php - AJAX 响应类型。我无法使用 JSON。还有其他选择吗?

javascript - foreach 循环,链接到 CoffeeScript 中的 'this'

javascript - 无法使用ajax从xml文件中获取数据对象

javascript - 如何使用带有 onclick 函数的 document.getElementsByClassName 覆盖样式

jquery - 使用 JQuery 的 AJAX 阻塞问题

javascript - $.ajax 对比 $.post 对比 $.get 对比 $.load