【问题标题】:jQuery redirected on responsejQuery重定向响应
【发布时间】:2014-12-18 15:38:59
【问题描述】:

我正在尝试为我得到的每个结果显示图像。

我有当前的代码。

$(document).ready(function() {
            var frm = $('#searchmovie');
            frm.submit(function (ev) {
                $.ajax({
                    type: frm.attr('method'),
                    url: frm.attr('action'),
                    data: frm.serialize(),
                    crossDomain: true,
                    success: function (data) {
                        //alert('Got response from server!');
                        if(data == "404"){
                            alert('404, no results found');
                        }
                        else{
                            data = $.parseJSON(data);

                            $.each(data, function(index,movie) {
                                //alert(movie.imdb_id);
                                content += '<div class="col-xs-6 col-md-3 text-center">
                                                <a class="poster-container" href="/movie?imdb_id='+ movie.imdb_id +'">
                                                <img src="http://img.omdbapi.com/?apikey=xxxxxx&h=376&i='+movie.imdb_id+'" height="376" width="251">
                                                </a>
                                            </div>';

                            });
                            //content = '<div class="img_wrapper">';

                            $('#movieresults').append(content);
                            //$('#movieresults').append(JSON.stringify(data)); 
                        }

                    }
                });

                ev.preventDefault();
            });
      });

问题是当我使用下面的 alert(movie.imdb_id) 时:

else{
       data = $.parseJSON(data);
       $.each(data, function(index,movie) {
          alert(movie.imdb_id);

       });
    }

我收到警报并停留在当前页面上。这就是我想要的。 但是当我使用“内容”时,我会被重定向到 API:s res.json 页面......?这是为什么呢?

【问题讨论】:

  • $('#movieresults').append('&lt;div class="col-xs-6 col-md-3 text-center"&gt; &lt;a class="poster-container" href="/movie?imdb_id='+ movie.imdb_id +'"&gt; &lt;img src="http://img.omdbapi.com/?apikey=xxxxxx&amp;h=376&amp;i='+movie.imdb_id+'" height="376" width="251"&gt; &lt;/a&gt; &lt;/div&gt;'); 会重定向你吗?
  • 好吧,我想。因为当我只使用警报时,我没有被重定向..?我评论“$('#movieresults').append(content);”也。
  • 尝试在 ajax 调用之前移动 ev.preventDefault() ?
  • Klepthys 所说的写作和 Hacketo 所说的都没有区别.. :(
  • 您的代码在content += '...' 中是否真的有回车?因为如果是这样,那将是一个语法错误并且脚本不会运行

标签: jquery json redirect


【解决方案1】:
content += '<div class="col-xs-6 col-md-3 text-center"> <-- THE LINE BREAK HERE IS INVALID SYNTAX! 
               <a class="poster-container" href="/movie?imdb_id='+ movie.imdb_id +'">
                  <img src="http://img.omdbapi.com/?apikey=xxxxxx&h=376&i='+movie.imdb_id+'" height="376" width="251">
               </a>
             </div>';

你可以做两件事:

1)

content += '<div class="col-xs-6 col-md-3 text-center">';
content +=   '<a class="poster-container" href="/movie?imdb_id='+ movie.imdb_id +'">';
content +=      '<img src="http://img.omdbapi.com/?apikey=xxxxxx&h=376&i='+movie.imdb_id+'" height="376" width="251">';
content +=     '</a>';
content +=  '</div>';

2)

content += '<div class="col-xs-6 col-md-3 text-center">' +
              '<a class="poster-container" href="/movie?imdb_id='+ movie.imdb_id +'">'+
                 '<img src="http://img.omdbapi.com/?apikey=xxxxxx&h=376&i='+movie.imdb_id+'" height="376" width="251">'+
              '</a>'+
           '</div>';

【讨论】:

  • 谢谢!我正在尝试这个,脚本将运行(获取 API),但没有附加响应。它甚至不会附加以下内容: content += '

    Movie ID: '+movie.imdb_id+'

    ';
  • content 最初定义在哪里?
  • 以前不行.. 现在可以了.. :) 你太棒了,我很马虎!
  • 我建议您为自己下载一个 ide,例如 netbeans 或 aptana。它会在您尝试运行之前显示代码中的语法错误,在记事本中编辑代码只会让人头疼
猜你喜欢
  • 2011-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多