我的ajax方法不起作用,
Posted
技术标签:
【中文标题】我的ajax方法不起作用,【英文标题】:My ajax method is not working, 【发布时间】:2017-02-14 23:56:06 【问题描述】:在控制台日志中收到以下消息 原因:缺少 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>
【问题讨论】:
你不能从客户端做任何事情。这是服务器端的问题。请阅读来自Enable CORS 的内容。 没有在客户端我也得到同样的错误 我用的是192.168.1.9/irmtapi/同样的问题 我刚刚给了你一个链接来启用 CORS。你甚至检查过吗?你用的是什么服务器? 好的,现在检查 【参考方案1】:这显然是服务器端代码的问题,它没有发送正确的标头以允许跨域请求共享。你需要通过两种方式在 Apache Server 中使用 php 来enable CORS。
方法一:使用 Apache Server 的设置。
使用 Apache 的 .htaccess
,您可以通过添加以下行来启用 CORS:
Header set Access-Control-Allow-Origin "*"
为此,您需要确保启用了mod_headers
模块。您可以使用sudo a2enmod headers
启用此功能。为此,您需要 sudo 权限。另外,您需要在使用sudo service apache2 reload
更改配置后重新启动Apache Server。
方法二:使用PHP代码。
或者,如果您对服务器管理没有太多控制权,您可以在响应您请求的脚本中启用它。只需在 PHP 文件的顶部添加这个,这样浏览器就可以进行 AJAX 访问:
<?php
header("Access-Control-Allow-Origin: *");
如果您还有其他问题,请告诉我。如需更多信息,请参阅以下参考资料:
Enable CORS in Apache Server Enable CORS in PHP Script【讨论】:
以上是关于我的ajax方法不起作用,的主要内容,如果未能解决你的问题,请参考以下文章