2

dataType を jsonp としてクロスドメイン AJAX 呼び出しを行っています。URL に Jsoncallback クエリ文字列パラメーターを設定しました。ただし、コールバック関数はまったく呼び出されず、代わりにページがそれ自体にリダイレクトされます。

AJAX 呼び出しは基本的に、ブラウザーで直接テストしたときに以下の応答を返すドット CMS サービスにヒットしています。

myfunction({'state':'MEL', 'plan':'true' })

ここで、「myfunction」は、URL の Jsoncallback パラメータの値として渡す文字列です。

これが私のAJAX呼び出しです

$.ajax({
  url:"http://website.hostname.com/validatepostcode.dot?postcode="+encodeURIComponent(thepostcode)+ "&Jsoncallback=parseResponse",
  dataType: "jsonp",
  async: false,
  crossDomain:true
  });


function parseResponse(data)
{
 alert(data);
}

AJAX 呼び出しにパラメーターがありませんか? それとも、サービス側に何か問題があるのでしょうか?

4

1 に答える 1

1

$.ajaxjQuery 関数には、コールバック関数の名前を指定するための特定の構成オプションがあり、コードにはないようです。

dataType: 'jsonp'jQueryを設定することで

「?callback=?」を追加します。URL の末尾に追加して、コールバックを指定します

値にコールバック関数も追加しているため、問題が発生していurlます。

これをオーバーライドするには、次のjsonpオプションを追加できます。

jsonp リクエストでコールバック関数名をオーバーライドします。この値は、「callback=?」で「callback」の代わりに使用されます。URL のクエリ文字列の一部。

data別のオプションとして を指定することもできます ( Sending Data to the server を参照)。これも以下に追加しました。

次のコードは、コールバック関数として正しく使用する必要parseResponse()があります。

$.ajax({
  url: 'http://website.hostname.com/validatepostcode.dot',
  type: 'get',
  data: {postcode: encodeURIComponent(thepostcode)},
  dataType: 'jsonp',
  jsonp: 'parseResponse'
});
于 2013-05-01T14:11:23.587 に答える