2

我在进行 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”并发出成功警报。

希望您能够帮助我。

谢谢

4

1 回答 1

5

您的 JavaScript 表示使用 JSONP 模式发出 Ajax 请求(这涉及将<script src="something">元素插入到文档中,而不是使用 XMLHttpRequest)。

您得到的响应是 XML 文档,而不是遵循 JSONP 模式的 JavaScript 程序,类似于:

value_of_query_string_callback_argument({ "int": 1 });

您收到错误是因为浏览器试图将 XML 作为 JavaScript 执行(事实并非如此)。

要么将响应更改为 JSONP,要么使用其他方法进行跨域请求

于 2013-11-13T14:28:03.463 回答