没有引发错误时返回错误..WEB API C#
我有一个Web API 2.0操作,它执行以下操作:没有引发错误时返回错误..WEB API C#,c#,rest,asp.net-web-api,C#,Rest,Asp.net Web Api,我有一个Web API 2.0操作,它执行以下操作: [System.Web.Http.Route("api/wdretrievedata")] [System.Web.Http.HttpGet] public IHttpActionResult RetrieveUserData(string email) { var user = new WDUserData(); user.FirstName = "FirstName";
[System.Web.Http.Route("api/wdretrievedata")]
[System.Web.Http.HttpGet]
public IHttpActionResult RetrieveUserData(string email)
{
var user = new WDUserData();
user.FirstName = "FirstName";
user.LastName="LastName";
user.PhoneNumber="PhoneNumber";
return Ok(user);
}
正如您所看到的,这里没有错误。我在Postman中运行此程序并获得结果(出于安全考虑,省略了某些数据):
我通过$.ajax在代码中运行它,如下所示:
$.ajax({
url: 'http://localhost:49352/api/wdretrievedata?email=myemail@gmail.com',
type: "GET",
async: true,
success: function (data) {
//never goes here
},
error: function (err) {
//always goes here
//err.statusText says 'error' and nothing else
alert(err.statusText);
}
});
API调用总是在错误部分返回,并且不包含任何数据。如何像Postman一样通过$.ajax调用使API调用工作?谢谢
如果这有帮助的话,我已经将api部署到web服务器上了。Troy此url查看我得到的内容:
试试:
[System.Web.Http.Route("api/wdretrievedata")]
[System.Web.Http.HttpGet]
public async Task<IHttpActionResult> RetrieveUserData(string email)
{
var user = await new WDUserData();
user.FirstName = "FirstName";
user.LastName="LastName";
user.PhoneNumber="PhoneNumber";
return Ok(user);
}
[System.Web.Http.Route(“api/wdretrievedata”)]
[System.Web.Http.HttpGet]
公共异步任务RetrieveUserData(字符串电子邮件)
{
var user=等待新的WDUserData();
user.FirstName=“FirstName”;
user.LastName=“LastName”;
user.PhoneNumber=“PhoneNumber”;
返回Ok(用户);
}
试试:
[System.Web.Http.Route(“api/wdretrievedata”)]
[System.Web.Http.HttpGet]
公共异步任务RetrieveUserData(字符串电子邮件)
{
var user=等待新的WDUserData();
user.FirstName=“FirstName”;
user.LastName=“LastName”;
user.PhoneNumber=“PhoneNumber”;
返回Ok(用户);
}
在对@BoundForGlory进行一些研究后,发现跨源请求存在问题
其中一个选项是添加自定义标题访问控制允许来源
以允许CORS
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
在对@BoundForGlory进行一些研究后,发现跨源请求存在问题 其中一个选项是添加自定义标题
访问控制允许来源
以允许CORS
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
您能告诉我们错误吗?您不是因为呼叫同一个源(本地主机)而收到错误吗?呼叫的响应状态代码是什么响应状态代码是200getting error:请求的资源上不存在“Access Control Allow origin”头。
@demo-当您向我显示收到的错误时,我发现了这个,这就是答案…我如何给你信用?你帮我找到了这个你能告诉我们错误吗?您不是因为呼叫同一个源(本地主机)而收到错误吗?呼叫的响应状态代码是什么响应状态代码是200getting error:请求的资源上不存在“Access Control Allow origin”头。
@demo-当您向我显示收到的错误时,我发现了这个,这就是答案…我如何给你信用?你帮我找到了这不是compile@BoundForGlory,您需要使用system.threading.tasks添加,
如果我没有错的话,我这样做了,甚至添加了return Task.FromResult(用户)。还是一样的问题我添加了url,这样你就可以测试它了compile@BoundForGlory,您需要使用system.threading.tasks添加,
如果我没有错的话,我这样做了,甚至添加了return Task.FromResult(用户)。还是同样的问题,我添加了url以便您可以测试它。