【问题标题】:ajax returns error when ajax code is inside button click当 ajax 代码在按钮内单击时,ajax 返回错误
【发布时间】:2015-05-08 16:11:51
【问题描述】:

当代码放置在 document.ready() 函数中时,点击 url 的 Ajax 代码可以正常工作。但是,当相同的代码放置在就绪 fun() ajax url 中的按钮单击函数中时,会返回错误。

代码:

<script>
    $(document).ready(initialize);
    function initialize() {
        $(".storage").click(function(){
             $.ajax({
                  cache:    false,
                  type:     "GET",
                  async:    true,
                  dataType: "JSON",
                  url:      "urllink",
                  data:     { apiKey: "apikey" },
                  success:  function(results) { 
                       alert(" Disk Array URL hit");
                  }
                  error:    function(xhr)     { alert("Error!") } });
             });
        }
  </script>

  <input type="submit" value="LOAD" id="storage" class="storage" >

【问题讨论】:

  • 成功回调后缺少“,”的语法错误..
  • 这是代码中的拼写错误,代码中有逗号。但它仍然只有当它在按钮内点击时才会出现错误。如果相同的代码在 document.ready 内它工作正常。
  • 什么网址是url: "urllink"urllink 是实际的链接/页面吗?另外,因为你有dataType: "JSON",如果你从url: "urllink"返回的数据是无效的json,那么它会出错。您是否检查过您的浏览器控制台以查看您的 url 是否被点击,以及返回的内容是什么?
  • 是的 urllink 是机密 API url。它有有效的 json 数据。当代码在 ready() 函数中时,该 url 被命中并成功返回数据。将相同的代码放置在按钮单击中时,它会遇到错误路径。

标签: javascript php jquery ajax


【解决方案1】:

试试这个:

function initialize()
            {
                    $(".storage").click(function()
                    {
                            $.ajax({
                                    cache   : false,
                                    type    : "GET",
                                    async   : true,
                                    dataType: "JSON",
                                    url     : "urllink",
                                    data    : {apiKey: "apikey"},
                                    success : function(results)
                                    {
                                            alert(" Disk Array URL hit");
                                    },
                                    error   : function(xhr)
                                    {
                                            alert("Error!")
                                    }
                            });
                    });
            }
            $(document).ready(initialize);
<input type="button" value="LOAD" id="storage" class="storage" >

输入类型提交将提交一个不是此脚本中预期操作的表单.. "," 在成功参数后丢失..这给出了语法错误..

【讨论】:

  • 我有表单也可以在按钮点击后发布到不同的页面..
    ...这里的问题是,只要我单击按钮,它就会发布到 dbconnect.php 页面,而无需点击 ajax 代码中的 url。
  • 你不能对同一个事件执行这2个动作。尝试在ajax成功回调后提交表单...
  • 好的..我将尝试在 ajax 成功调用中调用 php 页面。 $('form').attr('action', 'dbconnect.php'); $('form').submit(); ..这是在ajax成功中调用php页面的正确方法吗?
  • 所有你需要做的就是使用 submit() js 方法提交你的表单,因为你得到了 ajax 成功响应..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
相关资源
最近更新 更多