【问题标题】:Jquery what is wrong with this functionjquery这个函数有什么问题
【发布时间】:2011-04-06 22:42:04
【问题描述】:

编辑: 我的脚本由一个按钮调用:$("#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);  }
});

谢谢大家。

【问题讨论】:

标签: jquery json post


【解决方案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

【讨论】:

  • hmhm 我在 1.5.2 jquery 和 php 中可以正常工作。网址可能有问题?
  • 当使用 curl 时,POST 正在工作。网址没问题,我测试一下
  • 一定很有趣,因为我可以让这个示例在我所有的浏览器上运行,并且从 jquery 1.3.2 开始(甚至没有更早尝试过)。顺便说一句,您尝试使用的 url 不是本地的,您在那里使用完整的 url 字符串?如果是这样,您需要额外设置crossDomain=true(但通常这是默认设置)
  • 你认为我可以使用username: "mark"和password: "123456"和url" "/users/145198/users/update"
  • 好的。我看到这个错误Object { readyState=4, status=0, statusText="error"} 并且警报是[object Object] 这一切意味着什么?
【解决方案2】:
$.ajax({
      data: { fname: "123456" },
      type: "POST",
      url: "http://mark:123456@interfaces.local/users/145198/users/update"
});

并确保url 与您的页面位于同一域中

【讨论】:

  • 你有success 属性吗?
  • 我加了一个但没有动静,完全死了
  • 是的,它在同一台服务器上.. 问题是我看不出是什么问题
  • 你真的看到请求被触发了吗?像在控制台中?也许在接到这个电话之前就出了问题
【解决方案3】:
  • 你如何调用这个 $.ajax 方法?也许你只是没有打电话?
  • 我假设 interfaces.local 是指向您本地计算机的 hosts 文件条目?

arma 的帖子看起来不错,您是否遇到 javascript 错误?您使用什么浏览器以及什么操作系统?

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

【讨论】:

  • 我正在使用按钮 $("#save").click(function() { ajax here 调用脚本。 url 在我旁边的一台计算机上,我将它用作临时服务器。 firebug 不显示任何 js 错误,也不显示 POST。我一定是最后一个遇到这种问题的人
【解决方案4】:

改变:

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

到

data: {fname:"123456"},

【讨论】:

    猜你喜欢
    • 2014-06-29
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2011-02-13
    • 2011-04-24
    • 2011-08-26
    • 1970-01-01
    相关资源
    最近更新 更多