当我进行ajax调用时,我遇到了问题。
我的代码是:
$('#regLink').click(function(event){
event.preventDefault();
urlLink = $('#regLink').attr('name') + $('input[name="email"]').val();
$.ajax({
type: 'GET',
dataType: 'jsonp',
jsonpCallback: 'callback',
url: urlLink,
success: function (xml) {
var code = $(xml).find('int').text();
if(code == '1') {
console.log('email gravado com sucesso');
}
else {
console.log('algo correu mal');
}
}
});
});
电话会给出回复:
<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://tempuri.org/">1</int>
它给了我这个错误:
Uncaught SyntaxError: Unexpected token <
网址指向另一个网站,因此它是一个跨域调用。
我只想阅读“1”并提供成功警报。
希望你能帮助我。
由于
答案 0 :(得分:5)
您的JavaScript说使用JSONP模式发出Ajax请求(涉及在文档中插入<script src="something">
元素而不是使用XMLHttpRequest)。
您获得的响应是XML文档,而不是遵循JSONP模式的JavaScript程序,它类似于:
value_of_query_string_callback_argument({ "int": 1 });
您收到错误是因为浏览器正在尝试将XML作为JavaScript执行(不是这样)。
将响应更改为JSONP,或使用some other method to make a cross-domain request。