【问题标题】:Cant get Ajax to work无法让 Ajax 工作
【发布时间】:2013-10-30 13:06:24
【问题描述】:

我发现了这个问题,我试图在不离开页面的情况下更新我的数据库。

How to update a mysql database without reloading page

我正在尝试创建 Sandeepan Nath 发布的脚本。

我所拥有的只是一点点编辑。

<script type="text/javascript">

function addItemToUsersList(itemId)
{
  $.ajax
  ({
  'url': 'addtofavourit.php', 
   'type': 'GET',
  'dataType': 'json', 
  'data': {itemid: itemId}, 
   'success': function(data) 
   {
       if(data.status)
       {
           if(data.added)
            {
                   alert("Item added to your personal list");
             }
             else
             {
                    alert("This item is already on your list");
            }
        }
   },
   'beforeSend': function() 
     {
           alert("Adding item to your bucketlist...");
     },
      'error': function(data) 
      {
        // this is what happens if the request fails.
        alert("An error occureed");
    }
});

}

和我的 html(从 php 循环创建)

<div style="margin-top:40px;">
      <a onclick="addItemToUsersList(<?php echo $imgid ?>)" ><b>Add to favourit</b
</a>
</div>

最后,addtofavourit.php 的内容与我试图从中运行 ajax 的页面位于同一文件夹中。

<?php
if($_GET['itemId'] > 1) //just for debugging should always atleast return status true..
 {
    return json_encode(array("status" => true, "added" => true));
 }
 else
 {
    return json_encode(array("status" => true, "added" => false));
 }
?>

这样做的结果是我首先得到一个警告框,如预期的那样“将项目添加到您的存储桶列表...”

但是在那条消息之后我得到一个新的警报框:

发生错误

我尝试将 addtofavourit.php 更改为 http://www.domain.com/pathto/addtofavourit.php(其中http://www.domaim.com/pathto/ 是我刚刚为示例添加的个人网站。)和../addtofavourit.php 但没有帮助。

谁能帮帮我,因为我不知道要看看。

【问题讨论】:

  • 检查您的控制台是否有错误?此外,这似乎是一个POST 请求。
  • 给定的链接失效了...你能检查一下还是尝试显示错误信息。
  • 链接我猜你的意思是domain.com/pathto/addtofavourit.php 是一个示例 domain.com 用我的真实域进行了更改
  • @tymeJV Post 以后可以更改 get 我猜应该可以工作..
  • 你不应该在 php 中回显而不是返回吗?

标签: jquery ajax


【解决方案1】:

可能您发送 ajax 请求的页面没有到位(正确的路径可能有问题),尝试使用 firebug 分析它,如果您看到 ajax 请求已转向 红色表示您的请求有问题!

【讨论】:

  • 没有变红就是全黑
【解决方案2】:

先在数据类型前加上ContentType:

(有时这会导致异步调用不能很好地工作) contentType: "application/json; charset=utf-8",

同时删除所有参数(url、type、success等)中的单引号

【讨论】:

  • 我看到你在 "application/json; charset=utf-8" 周围使用双引号,我有单引号 ' 我应该将所有内容都更改为双引号吗?我需要在发送等之前删除成功的引号吗?
  • 我认为这是相同的(它只是一种用法),但是可以尝试使用双引号并添加 ContentType。
  • 是的,删除成功、url 和所有参数周围的引号
  • 尝试了以上所有方法,但没有这样做。还添加了警报(数据);出错:但它返回 Object.object
  • 尝试在调用中只返回一个简单的字符串,这可能是错误(在服务器端)
猜你喜欢
  • 1970-01-01
  • 2017-12-12
  • 2017-04-24
  • 1970-01-01
  • 1970-01-01
  • 2016-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多