3

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

按照教程,我为网络服务器(跨域)创建了一个 ajax 调用。一切都很顺利,直到我尝试将类型从“GET”切换到“POST”:JQuery 仍然发送 get-requests(firebug-confirmed,服务器 r_print() 测试了 $_POST 和 $_GET)。

所以对我来说最大的问题是:我如何教 $.ajax 发送 POST?(是的,GET 可能会做,但这段代码不是我想要它做的,这会伤害我的感受)

我用一个简单的 HTML 表单检查了 PHP 端,该表单发送了一个带有预期结果的帖子。

我也添加了这一行:

 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);
 }

执行请求();

每一个帮助或提示 - 无论是关于改进我的搜索模式以及具体问题 - 都非常受欢迎:)

谢谢!

4

3 回答 3

4

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

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

于 2012-10-31T19:49:00.447 回答
1

JSONP 插入一个脚本标签,该标签从不同的域执行 Javascript,并且只支持 GET 请求,因为无论您想使用什么,都无法使用插入 DOM 的脚本标签进行 POST。

于 2012-10-31T19:46:10.743 回答
1

JSONP 通过创建<script>标签来工作。
发送 JSONP POST 基本上是不可能的。

于 2012-10-31T19:46:21.273 回答