我进行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 <
该URL指向另一个站点,因此它是跨域调用。
我只想阅读“ 1”并给出成功提示。
希望您能够帮助我。
谢谢
您的JavaScript表示使用JSONP模式发出Ajax请求(这涉及将<script src="something">元素插入文档中而不是使用XMLHttpRequest)。
<script src="something">
您得到的响应是一个XML文档,而不是遵循JSONP模式的JavaScript程序,它类似于:
value_of_query_string_callback_argument({ "int": 1 });
因为浏览器试图将XML作为JavaScript执行(不是),您会收到错误消息。
将响应更改为JSONP,或使用其他方法进行跨域请求。