Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery中的AJAX调用出现错误_Javascript_Jquery_Html_Css_Ajax - Fatal编程技术网

Javascript JQuery中的AJAX调用出现错误

Javascript JQuery中的AJAX调用出现错误,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,我正在附加我正在执行的项目,但它总是转到错误函数 为什么要这样做 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery UI Autocomplete - Default functionality</title> <link rel="stylesheet" href="jquery-ui.

我正在附加我正在执行的项目,但它总是转到错误函数

为什么要这样做

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>jQuery UI Autocomplete - Default functionality</title>
    <link rel="stylesheet" href="jquery-ui.css">
    <script src="jquery-1.10.2.js"></script>
    <script src="jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css">
    <script>
      $(function() {
          $("#tags").autocomplete({
              source: function (request, response) {
                  $.ajax({
                      url: "test",
                      dataType: "json",
                      success: function(response) {
                          alert("a");
                          console.log(response);
                      },
                      error: function(response) {
                        alert("b");
                          console.log(response);
                      }
                  });
              }
          });
      });
    </script>
  </head>
  <body>
    <div class="ui-widget">
      <label for="tags">Tags: </label>
      <input id="tags">
    </div>
  </body>
</html>

Url应该是
“test.json”
,因为您得到的是静态文件。您不向有效的服务器URL发送请求。

它必须是您试图从URL获取的实际文件:测试不会返回任何内容,除非在后端您有某种机制提供JSON响应,数据类型:JSON

url中的文件可以是任何内容。json或test.php、test.asp、test.jsp不管是什么情况,您都需要指定一个包含实际json的文件


回答得好,伯吉特·马丁内尔。这是我的第一本能

您可以对后端API进行AJAX调用,它需要返回JSONP格式,而不仅仅是JSON,否则会出现错误。这是由于同一原产地政策:

此讨论可能有助于理解JSONP:

然而,另一种选择是禁用谷歌浏览器的安全性,然后它就会工作。但这不是一个解决方案。您需要使用JSONP格式

因此,最好将JSon文件设置为这样的格式,即JSonP格式

myCallback([{"SubItemID":1,"MainItemID":1,"SubName":"2%","MainName":"Milk"},
{"SubItemID":2,"MainItemID":1,"SubName":"Skim/Fat Free","MainName":"Milk"},
{"SubItemID":3,"MainItemID":2,"SubName":"Chedder","MainName":"Cheese"}]);

希望这能帮助您解决问题

您确定指定的
“test”
URL指向有效资源吗?返回的HTTP代码状态是什么?test是带有json响应的有效URL?console.log(response)打印什么?只需将URL更改为test.json(URL:“test.json”)-您需要包含文件扩展名
myCallback([{"SubItemID":1,"MainItemID":1,"SubName":"2%","MainName":"Milk"},
{"SubItemID":2,"MainItemID":1,"SubName":"Skim/Fat Free","MainName":"Milk"},
{"SubItemID":3,"MainItemID":2,"SubName":"Chedder","MainName":"Cheese"}]);