JQuery Ajax-Call类型:“POST”由服务器接收为“GET”

时间:2012-10-31 19:45:28

标签: jquery ajax post types

我的第一次服务器通信体验遇到了麻烦,并希望得到帮助。

在教程之后,我为网络服务器(跨域)创建了一个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();

每一个帮助或提示 - 无论是在改进我的搜索模式还是在具体问题上 - 都非常有用:)

谢谢!

3 个答案:

答案 0 :(得分:4)

删除行“jsonp”和“jsonCallback。”。如果要使用回调,请根据$ .ajax文档将.done()函数添加到$ .ajax:

http://api.jquery.com/jQuery.ajax/

答案 1 :(得分:1)

JSONP插入一个脚本标记,该标记从不同的域执行Javascript,并且只支持GET请求,因为无论你想使用什么,将脚本标记插入DOM都是不可能的。

答案 2 :(得分:1)

JSONP的工作原理是创建<script>标记 发送JSONP POST基本上是不可能的。