此问题可能由于CORS(跨源资源共享)策略限制而导致。在本地主机上,浏览器允许通过AJAX访问相同的源,但在生产环境中,浏览器可能会阻止跨域请求。为解决此问题,服务器端需要将以下代码添加到响应头中:
// 如果允许所有来源进行CORS请求,可以添加以下代码(慎用!)
header('Access-Control-Allow-Origin: *');
// 如果仅允许特定来源进行CORS请求,可以添加以下代码
header('Access-Control-Allow-Origin: http://example.com');
另一种解决方法是使用JSONP(JSON with padding)技术,它可以绕过CORS限制。在Ajax请求中添加“jsonp”作为参数,然后将响应包裹在回调函数中返回。例如:
$.ajax({
url: 'http://example.com/api/',
dataType: 'jsonp',
jsonpCallback: 'myCallback',
success: function(data) {
// 处理数据
},
error: function() {
console.log('请求失败');
}
});
// 后端返回响应时,将数据包裹在回调函数中
myCallback({"name": "Tom", "age": 18});
下一篇:Ajax方法总是进入错误函数。