当前位置: 首页 > 知识库问答 >
问题:

如何调用ajax请求与JSON响应使用jQuery?

颛孙信厚
2023-03-14

我无法使用jQuery行打印下面代码中的success。支持cors=true;。包括jQuery行。支持cors=真;将发出警告信息。那么,如何在不丢失功能的情况下避免这种情况呢?我的主要目标是调用一个返回JSON数据的RESTWeb服务,我必须利用JSON数据。请帮助我如何做到这一点。请提供工作样品

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.getJSON demo</title>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<script>
    jQuery.support.cors = true;
    $.ajax ({
        url: 'http://json-cricket.appspot.com/score.json',
        datatype: "json",
        success: function (e) {
            // Success callback
            alert("sucess");
        }})
</script>
 
</body>
</html>

共有3个答案

何聪
2023-03-14

CORS(跨源资源共享)与XSS不同。

$。支持cors包含测试当前浏览器是否支持cors的测试结果。更改它不会使浏览器支持cors。

此外,您的服务器必须通过返回正确的头来支持CORS

南宫泓
2023-03-14

最好的方法是使用jsonp请求。为此,只需将dataType指定为jsonp

$.ajax({
    url: 'http://json-cricket.appspot.com/score.json',
    dataType: 'jsonp',
    success: function (data) {
        console.log(data);        
    }
});

请参见jsF上的示例

祁渊
2023-03-14
  1. 您可能会错过添加type//GET或POST,这是REST OPEATION的类型
  2. dataType拼写错误
  3. 错过添加内容类型
 $.ajax({
            type: "POST", //rest Type
            dataType: 'jsonp', //mispelled
            url: "http://json-cricket.appspot.com/score.json",
            async: false,
            contentType: "application/json; charset=utf-8",
            success: function (msg) {
                console.log(msg);                
            }
 });

更新:在试图找出原因的同时,我认为这是理解问题的最佳答案。

假设您在域abc.com,并且您想向域xyz.com.发出请求。要做到这一点,您需要跨越域边界,这在大多数浏览器中是不允许的。

绕过这个限制的一个项目是标签。当您使用脚本标记时,域限制会被忽略,但是在正常情况下,您不能对结果做任何事情,脚本只是被评估。

输入JSONP。当您向启用JSONP的服务器发出请求时,您会传递一个特殊参数,该参数会告诉服务器一点关于页面的信息。这样,服务器就能够以页面可以处理的方式很好地包装其响应。

 类似资料:
  • 问题内容: 我无法从下面的代码行 jQuery.support.cors = true 打印成功 。 。包括这行 jQuery.support.cors = true; 将给出警告信息。那么,如何在不失去功能的情况下避免这种情况呢?我的主要目标是调用一个休息的Web服务,该服务返回JSON数据,而我必须利用JSON数据。请帮助我如何做到这一点?请提供工作样本 问题答案: 您可能会错过添加 // G

  • 问题内容: 我正在发送一个带有2个post值的ajax请求,第一个是“ action”,它定义了我的php脚本必须解析的动作,另一个是“ id”,它是要为其解析脚本的用户的ID。 服务器在array()中返回6个值,然后使用PHP函数将其编码为JSON: 我的一些响应为HTML,但是当我将其编码为JSON时,它会转义,因此 如何禁用它? 当我不知道如何在获得服务器响应时在jQuery中显示此消息时

  • 问题内容: 我的Select2 3.4.5无法使用JSON数据。 这是我在HTML上的输入框: …还有我的JavaScript 我使用Laravel 4制作了一个API,每当在文本框中键入任何内容时,该API都会返回一个值。 如果在文本框中键入“ test”,则结果如下: 我无法将结果添加到我的Select2下拉列表中。我认为并且正在引起问题,因为我不知道应该在上面放置什么参数。我不知道从何处获取

  • 我的Select2 3.4.5不适用于JSON数据。 这是我在超文本标记语言上的输入框: ...和我的JavaScript 我用Laravel 4制作了一个API,每当我在文本框中键入任何内容时,它都会返回一个值。 如果我在输入框上键入“test”,结果如下: 我无法将结果添加到Select2下拉列表中。我认为是formatSelection和formatResult导致了这个问题,因为我不知道应

  • 问题内容: 我的网络服务返回一个JSON对象,如下所示 即,当我将此地址放入chrome浏览器中时,我可以到达上面。 我正在尝试在浏览器中阅读此内容,以便可以创建一个下拉选项…但是从以下代码开始我一无所获: 我总是在警报框中。我用fiddler2再次检查了Web服务请求/响应是否正常,我什至可以拦截Web服务和浏览器之间的json对象。 我也试过 我又得到了空。 我已经看过Ajax要求的json响

  • 问题内容: 哪种方法更快,要返回JSON中的ajax,然后处理JSON响应以呈现html,或者只是将Ajax响应中的原始html放在一堆中呢? 问题答案: 要看。在这两种情况下,服务器都只是返回带有文本的响应。如果响应的JSON版本比HTML版本需要更多字符,则该响应将需要更长的时间才能传输回客户端,反之亦然。 但是,当然还有服务器端脚本必须完成其工作。在您的情况下,从服务器端脚本生成JSON可能