0
document.getElementById('myform').addEventListener('submit', function (e) {
// voorkomt de standaard actie van de submit
e.preventDefault();
$(function() {
var artiest = document.getElementById("artiest");
var rijen = document.getElementById("rij");
var kolommen = document.getElementById("kolom");
var CGIurl = 'http://localhost:8000/cgi-bin/schuifpuzzel.py?artiest=' + artiest.value +
"&rijen=" + rijen.value + "&kolommen=" + kolommen.value + "&callback=jsonp";
$.ajax({
type: 'GET',
url: CGIurl,
dataType: "jsonp",
success: function(data){
console.log(data)
}
});
});
});
、ない呼び出されることはありません。だから私はeventListener
とpreventDefault
を使った。AJAXコールバックは、私は<em>ボタン</em>が押されたときに提出する私のCGIスクリプトを実行するために、このAJAXを実行しようとしています大成功でもエラー
これらはJSONをレスポンスヘッダに
ブラウザでテストするとき、私は取得しています結果であるため、GETがうまく動作しているようだが、私が取得しようとしているものです。 何らかの理由で私のAJAXのsuccesやエラーが呼び出されたので、JSONにアクセスする方法がありません。
:あなたがJSONPを必要がある場合は、あなたのCGIスクリプトは次のようになり、有効なJS応答を提供する必要があります私はそれが簡単にcorsの周りに得る方法だったと読んだのでjsonp。そして私はなぜデータがレスポンスヘッダに送られるのか分からないが、これをどのように修正するのか分からない。 – Joey
@Joeyクロスドメイン境界を回避する必要がある場合は、おそらくJSONPを使用する必要があります。データがヘッダーの一部であるのは、ヘッダーと本文データの間に空白行があるためです。これはサーバの実装によりますが、これを実現する方法は異なりますが、JS文字列の前に改行を付加するだけで簡単に行うことができます。 – robertklep
これで、1つの問題が修正されたので、応答にjsonが表示されるようになりました。私は 'uncaught SyntaxError:Unexpected token"を取得しています: "'それでもsucces/errorは決して呼び出されません。おそらく構文エラーのためでしょうか? – Joey