【问题标题】:HTTP request jQuery AJAXHTTP 请求 jQuery AJAX
【发布时间】:2015-11-11 03:18:01
【问题描述】:

我有以下代码

<html>
<head>
    <script src="jquery-2.1.4.js."></script>
    <script>
        $(document).ready(function(){
            $.ajax({
                url: 'https://www.google.co.in/?gfe_rd=cr&ei=mezSVeG9Cqat8wf92o2oDg',
                dataType: 'jsonp',
                success: function(dataWeGotViaJsonp){
                console.log(dataWeGotViaJsonp);
                }
            });
        })
    </script>
</head>

我在控制台上得到输出

Uncaught SyntaxError: Unexpected token < ?gfe_rd=cr&ei=mezSVeG9Cqat8wf92o2oDg&callback=jQuery21407372110611759126_1439888764171&_=1439888764…:1 

可能是什么问题?

【问题讨论】:

  • 返回类型不是json

标签: jquery ajax http-get


【解决方案1】:

您发出一个 AJAX 请求,而答案应该是一个 JSON 对象。或者如果您使用 JSONP,则调用 JavaScript 函数。
但是,响应是以下 HTML:

<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="ru"><head><meta content="/images/google_favicon_128.png" itemprop="image"><meta content="origin" id="mref" name="referrer"><title>Google</title>  

由于响应字符串的第一个字符是标签开头,它无法解析&lt;并返回错误。

您是否向错误的 URL 发出请求?

【讨论】:

  • 好吧,我只是在学习 jQuery 和 AJAX,我没有得到 JASON 对象的答案,它是正确的 HTML。所以我得到了错误。AJAX 请求的成功和错误条件是什么?
  • 您不需要使用 AJAX 来请求 HTML 页面。 AJAX 请求通常用于在不重新加载页面的情况下获取数据并动态更新页面。它可以返回纯文本、XML、JSON。请阅读这篇文章:stackoverflow.com/questions/6009206/…
  • 我的服务器上有 xml 文件,该文件位于我的应用程序域的另一个域中。我应该如何获取它?我仅出于该目的尝试了 JSONP,即 CORS 限制。
  • 您无法使用 JSONP 获取 XML 文件。 JSONP 假定 JavaScript 代码。因此,如果您想避免 CORS 限制并发出 JSONP 请求,您的服务器应该返回一个带有响应对象的 JavaScript 调用。像callback({"data": "someData", "id": 1}); 这样的东西。不幸的是,如果 Accept-Control-Allow-Origin 不允许您的主机,您无法对另一个域中的 XML 文件执行任何操作。
猜你喜欢
  • 2016-12-28
  • 1970-01-01
  • 2013-05-03
  • 1970-01-01
  • 2012-11-15
  • 2013-12-30
  • 2012-04-22
  • 2014-06-28
相关资源
最近更新 更多