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 パターン ( <script src="something">XMLHttpRequest を使用する代わりにドキュメントに要素を挿入することを含む) を使用して Ajax 要求を行うように指示しています。

取得する応答は XML ドキュメントであり、JSONP パターンに従った JavaScript プログラムではありません。次のようなものです。

value_of_query_string_callback_argument({ "int": 1 });

ブラウザーが XML を JavaScript として実行しようとしているため (そうではありません)、エラーが発生します。

応答を JSONP に変更するか、他の方法を使用してクロスドメイン リクエストを作成します

于 2013-11-13T14:28:03.463 に答える