尝试通过Javascript jQuery调用从Web API URL获取响应时出错
我有一段代码,应该从本地主机站点获取JSON答案。如果我从Chrome浏览这个URL,我会得到一个很好的响应,但是如果我试图从HTML页面运行这个代码,我会得到一个错误(通过VS调试) 有什么想法吗尝试通过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
$(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);
});
});