0

我是 Web 开发领域的新手,我希望能够通过 . 我在这方面真的没有成功。

我按照本教程能够建立这种连接:http ://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

我所需要的只是将一些来自 HTML 页面的输入发送到一个 web api,该 web api 接受这些参数并返回一个对象

我正在使用此代码

$.getJSON("api/GeneratorController/setparameters/"+firstparameter+"/"+secondparameter+"/"+thirdparameter+"/"+fourthparameter+"/"+fifthparameter+"/"+sixthparameter,
function (data) {
   alert(data); //never comes here
}).fail(function (jqXHR, textStatus, err) {
   alert("All checks are correct, image was not generated. jqXHR = " + jqXHR.valueOf() + " textStatus=" + textStatus + " Error" + err);
});

它总是进入失败部分,我附上了由此产生的警报消息

错误信息

有什么理由这样做吗?

@smartmeta(我更改了错字,谢谢)我听从了您的建议,这是警报的输出(如预期的那样,显示了我插入的值): 在此处输入图像描述

4

4 回答 4

1

您的 url 需要以您的域开头,而不是'api/generatorcontroller/...'. 如果你在本地开发,类似http://localhost:[port]/api/generatorController/....

此外,webApi 映射到 url 动词(get、post、put、delete..),而不是 setparameters 之类的函数,除非您在 get() 函数上方有一个 [name=setparameters]。

另外,我很确定您没有路由设置来处理带有所有这些参数的 url。您想要查看的,就像您使用 jQuery 一样,是jQuery.get文档。靠近底部的第二个示例显示了放置参数的位置。如果它们不在查询字符串中,WebAPI 将在正文中检查它们。所以它最终看起来像:

$.getJSON("http://"+window.location.host+"/api/GeneratorController/setparameters", {parameter1: parameter1, parameter2:parameter2 ...});

于 2013-02-15T22:51:03.613 回答
0

嗯,首先要检查的是确保您的服务器端函数返回您期望的值。您可以使用 Chrome 的开发者工具或 Firebug Firefox 扩展来做到这一点,我认为 IE10 也有类似的东西。转到“net”选项卡,找到与您的 API 调用对应的请求,然后查看服务器响应的内容。

于 2013-02-15T22:18:51.397 回答
0

请添加行

  alert("api/GeneratorController/setparameters/"+firstparemeter+"/"+secondparameter+"/"+thirdparameter+"/"+fourthparameter+"/"+fifthparameter+"/"+sixthparameter)

然后调用您的脚本并将警报的输出带到浏览器中。然后检查您的应用程序是否处理该路由。

顺便说一句,我认为你有一个错字。我想它应该是第一个参数。

我假设你想做

"api/GeneratorController?foo=Bar

但是,当您对此不熟悉时,我建议您首先尝试该示例。之后你就可以开始改变细节了。

于 2013-02-15T22:33:22.880 回答
0

所以我发现我的代码有什么问题

两件事情 :

1-当我调用我的 API 时,我不应该使用“控制器”这个词,它应该是api/Generator/...

2- 函数名称需要以“get”而不是“set”开头,因为它“获取”来自 api 的返回值

谢谢大家!

于 2013-02-17T07:32:59.337 回答