我的ajax方法不起作用,

时间:2016-10-06 09:39:17

标签: javascript jquery ajax cordova

在控制台日志中获取波纹管消息 原因:缺少CORS标题“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> 

1 个答案:

答案 0 :(得分:1)

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

方法1:使用Apache Server的设置。

使用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 Access:

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

如果您有任何其他问题,请与我们联系。有关详细信息,请参阅以下参考资料: