【问题标题】:jQuery AJAX type: 'GET', passing value problemjQuery AJAX 类型:'GET',传值问题
【发布时间】:2010-03-09 08:49:29
【问题描述】:

我有一个 jQuery AJAX 调用,类型为:'GET',如下所示:

$.ajax({type:'GET',url:'/createUser',data:"userId=12345&userName=test",
   success:function(data){
     alert('successful');
   }
 });

在我的控制台输出是: 获取:http://sample.com/createUser?userId=12345&userName=test 参数:用户 ID 12345 用户名测试

在我的脚本中,我应该使用 $_GET['userId'] 和 $_GET['userName'] 获取值,但我无法使用 GET 方法获取通过 ajax 请求传入的值。

关于如何做到这一点的任何想法?

谢谢,

【问题讨论】:

  • 用户名和useId从哪里来的?
  • 我从表单序列化它。 var dt = $('#userForm').serialize();

标签: php jquery ajax get


【解决方案1】:

我唯一能看到代码有问题(由于问题已被编辑(这表明代码已针对问题重写,可能无法准确反映正在使用的实际代码),因此不再适用))是成功函数放错地方了。

你有:

$.ajax(
   {
      type:'GET',
      url:'/createUser',
      data:"userId=12345&userName=test"
   },
   success: function(data){
     alert('successful');
   }
);

应该是:

$.ajax(
   {
      type:'GET',
      url:'/createUser',
      data:"userId=12345&userName=test",
      success: function(data){
        alert('successful');
      }
   }
);

尽管如此,您对控制台输出的描述表明数据正在正确发送。我会尝试使用此脚本进行测试,以查看 PHP 实际返回的内容(您可以在 Firebug 控制台中查看响应正文):

<?php
    header("Content-type: text/plain");
    print_r($_REQUEST);
?>

【讨论】:

  • 抱歉这个错误,是的,它应该像你建议的那样。
【解决方案2】:

url缺少扩展名,可以将数据作为对象传递,所以jquery将其转换为字符串

$.ajax({
  type:'GET',
  url:'/createUser.php',
  data:{"userId":"12345","userName":"test"},
  success:function(data){
    alert('successful');
  }
);

【讨论】:

  • URL 不能“错过扩展名”,它们是 URL 而不是文件名。此外,jQuery Ajax 方法显式接受一个字符串:"""如果还不是字符串,它会被转换为查询字符串。"""
猜你喜欢
  • 1970-01-01
  • 2011-03-22
  • 2012-03-27
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
  • 2017-06-16
  • 2012-04-11
  • 1970-01-01
相关资源
最近更新 更多