Javascript &引用;否';访问控制允许原点';标题出现在请求的资源上;(未捕获的语法错误:意外标识符)
我有以下ajax调用Javascript &引用;否';访问控制允许原点';标题出现在请求的资源上;(未捕获的语法错误:意外标识符),javascript,jquery,ajax,google-chrome,Javascript,Jquery,Ajax,Google Chrome,我有以下ajax调用 var response = ""; //Ajax call to the DB server var target_url = "http://SomeIP/db/*create_table*?token=1234qwer&table_name="+table_name+"&array_of_fields={"+final_fields+"}"; function hit_db(callback) { $.ajax({ url: t
var response = "";
//Ajax call to the DB server
var target_url = "http://SomeIP/db/*create_table*?token=1234qwer&table_name="+table_name+"&array_of_fields={"+final_fields+"}";
function hit_db(callback)
{
$.ajax({
url: target_url,
type: 'GET',
async: true,
crossDomain: true,
success: callback,
});
}
hit_db(function(data){
response = data;
alert(response);
});
但是警报(响应)
显示未定义
当正确输出应该是错误表已经存在时
然而,当我检查我的开发工具时,我看到了以下内容
如果我点击未捕获SyntaxError的链接,它会将我带到显示正确输出的页面
为什么我希望在该意外标识符中得到正确的输出,但却得到未定义的警报(响应)
?有可能的解决办法吗
编辑------
下面是一些简化的代码和响应
function hit_db(callback)
{
$.ajax({
url: target_url,
type: 'GET',
success: callback,
});
}
hit_db(function(data){
response = data;
console.log(response);
});
---网络选项卡
谢谢 你能把代码编辑成一个简单的ajax调用并检查控制台的响应吗。因为如果它只在浏览器上工作,我希望它是一个常见的get请求
function hit_db()
{
$.ajax({
url: target_url,
}).done(function(resp) {
console.log(resp)
});
}
hit_db();
编辑:问题是由于跨域请求引起的。您必须将“Alloww cross-orgin request”:*添加到服务器响应中,或者您可以在浏览器中将其旁路。如果在您的浏览器中不绕过它,我会说您需要阅读关于浏览器在此CORS中进行的跨原产地检查的不同条件检查,您可以搜索CORS相关内容抱歉,我在最后一分钟更改了我的问题。我更新到我最新的密码。屏幕截图就是我在检查开发工具时得到的确切响应。但是当我发出警告(回应)时,我没有定义。那么你介意在你的评论中编辑掉IP吗?我只是想消除人们使用我的服务器进行跟踪的机会,呵呵,问题是服务器没有使用JSONP进行响应-您能给出一个您得到响应的确切示例吗?你确定你是用JSONP而不仅仅是JSON来响应吗?或者JSONP是无效的(它有一个语法错误,比如错误消息状态),因此,您使用JSONP是因为JSON会给您CORS错误-但是JSONP不是JSON,它是JSONP。。。因此出现了语法错误——但由于您完全没有显示响应数据,只是声称“它是正确的”,因此很难提供帮助。JSONP的响应数据不正确,这就是为什么会出现语法错误,因为JSONP不是JSON,但是我猜你根本没有从服务器发送JSONP是的-开发工具显示了响应-但是javascript无法访问响应,因为缺少CORS头。我添加了带有简化代码的编辑,你在控制台日志中看到了什么?控制台是空的。没有任何记录您可以在网络选项卡中验证您的api调用是否已被请求?如果有错误,请将其粘贴在这里,同时确认请求是在正确的URL中发出的是的,我通过邮递员确认这是正确的URL,邮递员返回正确的输出。“网络”选项卡中没有错误