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)
}
});
});
});
我正在尝试运行此AJAX以在按下提交按钮时执行我的CGI脚本。所以我使用了eventListener
和preventDefault
。
GET似乎工作正常,因为这些是我在浏览器中测试时得到的结果
响应标头中的JSON是我要检索的那个。 但由于某种原因,我的AJAX中的成功和错误被调用,所以我无法访问JSON。
答案 0 :(得分:2)
我可以看到两件事是不正确的:
success
和error
回调都没有被调用); 修复此问题取决于您是否需要JSONP。如果没有,只需使用json
作为数据类型,并确保JSON数据在响应正文中。如果你确实需要JSONP,你的CGI脚本应该提供一个有效的JS响应,看起来像这样:
jQueryXXX({ "content" : { "size" : ... } });
(其中jQueryXXX
应该是callback
查询字符串参数的值)