我的javascript中有以下代码
var _csrf = $("#csrf_token").val();
var xhr = $.ajax ({
url : 'http://ip.jsontest.com/',
type : 'GET',
contentType : 'application/json',
headers : {
"csrf" : _csrf
}
})
.done(function(data){
alert('done');
})
.fail(function(data){
alert(data["statusText"]);
})
.always(function(data){
alert('always');
})
csrf_token是HTMl如下
<input type="hidden" value=" {{ csrf_token }}" id="csrf_token" >
调用此ajax调用时得到的结果是Error:SyntaxError:DOM异常12如果失败;块。
但是当删除csrf头时,会调用done块中的警报并始终阻止。
相同的代码在Chrome中运行良好,不会抛出任何DOM错误。
感谢您解决此问题的任何帮助。
谢谢
修改
我尝试过不同的档案 在HTML中:
在JS中
var c = $("#sessionId").val()
var xhr = $.ajax ({
url : 'http://ip.jsontest.com/',
type : 'GET',
contentType : 'application/json',
headers : {
"identifier" : cookie
}
})
.done(function(data){
alert('done');
})
.fail(function(data){
alert(data["statusText"]);
})
.always(function(data){
alert('always');
})
仍然是同一个问题
答案 0 :(得分:0)
我刚刚遇到这个问题,我自己试图使用
headers = 'Content-Type: application/x-www-form-urlencoded';
我发现,经过一些小小的摆弄,它正在绊倒在标题中的空间。当我把它设置为:
headers = 'Content-Type:application/x-www-form-urlencoded';
它完美无缺。我已经检查过使用不同的标题内容(随机文本,其他有效标题),并且标题中至少有一个空格的存在导致了这个特殊的麻烦。我不知道你是否可以重新配置你的标题以删除空格,但它让我开始重新开始工作。
不确定是否要向Apple报告,因为它在Safari 9更新之前完全正常工作,或者可能是jQuery工作人员仔细观察的内容。