我的第一次服务器通信体验遇到了麻烦,并希望得到帮助。
在教程之后,我为网络服务器(跨域)创建了一个ajax调用。一切顺利,直到我尝试将类型从“GET”切换到“POST”:JQuery仍然发送get-requests(firebug-confirmed,服务器r_print()测试$ _POST和$ _GET)。
所以对我来说最大的问题是:我如何教$ .ajax发送POST? (是的,GET可能会这样做,但是这段代码不是我想要的,这会伤害我的感受)
我在PHP方面检查了一个简单的HTML表单,该表单发送了一个包含预期结果的帖子。
我也加上了这句话:
jQuery.ajaxSetup({ jsonp: null, jsonpCallback: null});
建议在类似的答案中没有正面结果。
服务器代码(PHP)只包含:
echo("alert('".print_r($_POST)." -- + -- ".print_r($_GET)+"');");
JQuery的侧
function executeRequest() {
$.ajax({
type: "POST",
url: "http://server/script",
data: ({ username: "test" }),
dataType: "jsonp",
jsonp: "jsonCallback",
contentType: "application/json",
jsonCallback: "jsonCallback",
});
}
function jsonCallback(data) {
alert(data.username);
}
executeRequest();
每一个帮助或提示 - 无论是在改进我的搜索模式还是在具体问题上 - 都非常有用:)
谢谢!
答案 0 :(得分:4)
删除行“jsonp”和“jsonCallback。”。如果要使用回调,请根据$ .ajax文档将.done()函数添加到$ .ajax:
答案 1 :(得分:1)
JSONP插入一个脚本标记,该标记从不同的域执行Javascript,并且只支持GET请求,因为无论你想使用什么,将脚本标记插入DOM都是不可能的。
答案 2 :(得分:1)
JSONP的工作原理是创建<script>
标记
发送JSONP POST基本上是不可能的。