【问题标题】:How can I make jQuery ajax calls produce a response in the browser console?如何让 jQuery ajax 调用在浏览器控制台中产生响应?
【发布时间】:2019-11-23 01:44:06
【问题描述】:

我正在通过一个使用 jQuery 进行 ajax 调用的页面爬虫在数据库中缓存一个数字链接。在对远程站点进行 ajax 调用之前,我确保链接地址具有域列表之一或具有两个文件扩展名之一:

var j = jQuery.noConflict();

...

var substrings = ['site1',
                  'site2',
                  'site3',
                  'site4'];
var length = substrings.length;
console.log(length);
$.each(the_links, function(i, el){
  var dl_link = this;
  if (dl_link.endsWith('.html') || dl_link.endsWith('.php') || dl_link.indexOf(substrings[length])!=-1) {
    j.get( 'https://example.com/insert.php', { title:post_title, link: dl_link } )
        .done(function( data ) {
          console.log('response:');
          afterInsert(data);
        });
  }
  length--;
  if(link_count == 0){
    console.log('inserted all links');
  }
});

当我运行脚本时,我的 ajax 调用运行没有问题,并且我的记录在数据库中创建,但在 ajax 回调中没有任何内容返回到浏览器控制台:

如何访问我的 ajax 响应的内容?

我还尝试了以下 ajax 调用,但我仍然无法在控制台中记录响应,即使它出现在控制台 XHR 条目的 Response 选项卡中:

j.get(insert_script, { title: post_title,link: dl_link}, function(data, textStatus, jqXHR) {
   console.log('response:'); 
   afterInsert(data);
});

【问题讨论】:

  • j.get 中的 j 到底是什么?一个不同版本的 jQuery 什么的?
  • @DelightedD0D 我让 jQuery 在无冲突模式下运行,因为我正在缓存的页面在具有不同版本 jQuery 的远程主机上运行。因此我使用以下var j = jQuery.noConflict();
  • 嗯,也许那个版本的 jquery 没有挖掘.done,如果你尝试$.get('https://djpanaflex.com/custom/cache/insert.php', { title: post_title,link: dl_link}, function(data, textStatus, jqXHR) { console.log('response:'); afterInsert(data);});会发生什么

标签: jquery ajax browser-console


【解决方案1】:

事实证明,由于CORS,我的 ajax 响应没有提供给控制台。我能够使用 Firefox 的 CORS Everywhere 插件解决这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    相关资源
    最近更新 更多