Jquery这个函数有什么问题

时间:2011-04-06 22:42:05

标签: jquery json post

编辑: 我的脚本由一个按钮调用:$("#btnLogout").click(function() { the ajax here

我想知道这是否有问题:

        $.ajax({
      contentType: "application/json; charset=utf-8",
      data: {"fname":"123456"},
      dataType: "json",
      type: "POST",
      //url: "PersonService.asmx/AddPerson"
      url: "http://mark:123456@interfaces.local/users/145198/users/update"
    });

它接缝不起作用,我没有得到任何错误,所以我可以看到什么是错的。

我想使用data

中的值更改数据库中的记录

感谢


正常的, 我在arma's的帮助下找到了答案。 type: "PUT",命令用于修改某些内容。 type: "POST",命令用于创建/添加内容。

var mydata = {"fname":"bobworth"};
$.ajax({
type: "PUT",
processData : false,
data: JSON.stringify(mydata),
dataType: "json",
url: "http://www.xxx.com/users/",
contentType: "application/json; charset=utf-8",
username: "mark",
password: "123456",
success: function(t){    alert(t);  },
error: function(jqXHR, textStatus, error){
alert("jqXHR:"+jqXHR.status+" txtStatus:"+textStatus+" Error:"+error);  }
});

感谢所有人。

4 个答案:

答案 0 :(得分:1)

问题出在contentType: "application/json; charset=utf-8", 不知道你在服务器端做什么,但默认的'application / x-www-form-urlencoded'几乎总是你想要使用的。此外,内容始终以UTF-8发送,因此您无需指定。

试试这个:

$.ajax({
  data: {"fname":"123456"},
  dataType: "jsonp",
  type: "POST",
  //url: "PersonService.asmx/AddPerson"
  url: "http://mark:123456@interfaces.local/users/145198/users/update",

  success: function(t){
    alert(t);
  },

  error: function(jqXHR, textStatus, error){
    alert("jqXHR:"+jqXHR.status+" txtStatus:"+textStatus+" Error:"+error);
  }
});

回想一下你应该看看它是否有效。

对于服务器端(我只知道php :)):

$output = json_encode("myresponse_or_arrays");
if(isset($_POST['callback'])){
   $final = $_POST['callback']."(".$output.")";
}
echo $final; // This without any kind of checks or w/e ofc

答案 1 :(得分:0)

$.ajax({
      data: { fname: "123456" },
      type: "POST",
      url: "http://mark:123456@interfaces.local/users/145198/users/update"
});

并确保url与您的信息页位于同一个域

答案 2 :(得分:0)

  • 你怎么称这个$ .ajax方法?也许你只是不打电话给它?
  • 我假设interfaces.local是指向本地计算机的主机文件条目?

arma的帖子看起来不错,你收到javascript错误了吗?您使用的浏览器和操作系统是什么?

使用firebug或chromes dom inpsector并在调用之前和之后抛出一些console.log()条目,这样你至少可以知道它命中了那段代码?

答案 3 :(得分:-1)

更改:

data: {"fname":"123456"},

data: {fname:"123456"},