Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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调用从Web API URL获取响应时出错_Javascript_Jquery_Asp.net Web Api - Fatal编程技术网

尝试通过Javascript jQuery调用从Web API URL获取响应时出错

尝试通过Javascript jQuery调用从Web API URL获取响应时出错,javascript,jquery,asp.net-web-api,Javascript,Jquery,Asp.net Web Api,我有一段代码,应该从本地主机站点获取JSON答案。如果我从Chrome浏览这个URL,我会得到一个很好的响应,但是如果我试图从HTML页面运行这个代码,我会得到一个错误(通过VS调试) 有什么想法吗 $(document).ready(function () { alert("hello"); var request = $.ajax({ url: "http://localhost:3157/api/Products", type: "GET", dataTyp

我有一段代码,应该从本地主机站点获取JSON答案。如果我从Chrome浏览这个URL,我会得到一个很好的响应,但是如果我试图从HTML页面运行这个代码,我会得到一个错误(通过VS调试)

有什么想法吗

$(document).ready(function () {
  alert("hello");
  var request = $.ajax({
    url: "http://localhost:3157/api/Products",
    type: "GET",
    dataType: "json"
  });
  request.done(function(msg) {
    alert("msg is: " + msg);
  });
  request.fail(function (jqXhr, textStatus) {
    alert("Request failed: " + textStatus);
  });
});
更新-添加了xml输出

<ArrayOfProduct xmlns:i="http://www.w3.org/2001/XMLSchema-instance"     xmlns="http://schemas.datacontract.org/2004/07/FirstWebApi.Models">
    <Product>
        <Category>Groceries</Category>
        <Id>1</Id>
        <Name>Tomato Soup</Name>
        <Price>1</Price>
    </Product>
    <Product>
        <Category>Toys</Category>
        <Id>2</Id>
        <Name>Yo-yo</Name>
        <Price>3.75</Price>
    </Product>
    <Product>
        <Category>Hardware</Category>
        <Id>3</Id>
        <Name>Hammer</Name>
        <Price>16.99</Price>
    </Product>
</ArrayOfProduct>

杂货
1.
番茄汤
1.
玩具
2.
溜溜球
3.75
硬件
3.
锤子
16.99

确保
url
中的
响应
采用
json
格式

以指定
json
作为数据类型,必须从端点返回
json
,否则会出现解析错误,因为将显式调用
json
解析器

请注意,唯一的区别是端点(html与json)

您还可以尝试删除
dataType
属性,让jQuery自动计算出来


因为xml在语义上是正确的,所以问题必须在发送回的头中。确保响应的内容类型为“text/xml”

HTML

<script id='xmlData' type='text/html'>
<ArrayOfProduct xmlns:i="http://www.w3.org/2001/XMLSchema-instance"     xmlns="http://schemas.datacontract.org/2004/07/FirstWebApi.Models">
    <Product>
        <Category>Groceries</Category>
        <Id>1</Id>
        <Name>Tomato Soup</Name>
        <Price>1</Price>
    </Product>
    <Product>
        <Category>Toys</Category>
        <Id>2</Id>
        <Name>Yo-yo</Name>
        <Price>3.75</Price>
    </Product>
    <Product>
        <Category>Hardware</Category>
        <Id>3</Id>
        <Name>Hammer</Name>
        <Price>16.99</Price>
    </Product>
</ArrayOfProduct>
</script>

在试图询问工作中的某人之后,我肯定做了一些不同的事情,并收到了一条错误消息“禁止运输”。
从那里我找到了原因和解决方案

你会得到什么错误?我只是简单地在失败时得到了“error”一词。我尝试将数据类型设置为xml(这是我在浏览器中看到的),并将其删除,但没有起到作用。你的xml格式正确吗?是否只有一个父节点<代码>将有效,但
将无效。您的所有xml都需要由一个父节点包装。您应该为您的问题添加xml响应。尝试将数据类型设置为xml(这是我在浏览器中看到的),并将其删除,但没有成功。
$.mockjax({
  url: '/testXML/',
  responseTime: 0,
  contentType: 'text/xml',
  responseText: $('#xmlData').text()
});

$(document).ready(function () {
    $.ajax({
        url: "/testXML/",
        type: "GET"
    }).done(function(data, textStatus, jqXHR) {
        alert($(data).find('Product:eq(0) > Category').text());
    }).fail(function (jqXhr, textStatus) {
        alert("Request failed: " + textStatus);
    });
});