我有一台Api服务器,它几乎完美无缺。当我的网站调用Api服务器并在下面询问“操作”时,如果它返回0邮件则会抛出错误*
#include <stdio.h> // printf()
#include <iostream> // cout, endl
#include <iomanip> // setw(), setfill()
int main(void)
{
double const d = 10;
printf("%04.0f\n", d);
std::cout << std::setw(4) << std::setfill('0') << d <<std::endl;
return 0;
}
AllowCrossSiteJson属性:
0010
如果[AllowCrossSiteJson]
[System.Web.Http.HttpPost]
public newMessageList GetMessagesbyUser(string userid)
{
List<MessageList> m = new List<MessageList>();
List<Messages> s = db.Messages.Include(i => i.ToUser).Include(i => i.FromUser).Where(i => i.ToUser.Id.ToString() == userid).ToList();
foreach (var item in s)
{
m.Add(new MessageList() { Date = item.DateCreated, From = item.FromUser.Username, To = item.ToUser.Username, Message = item.Text, Subject = item.Subject, Key = item.ID.ToString(), FromFirstName = item.FromUser.FirstName, FromLastName = item.FromUser.LastName });
}
return new newMessageList() { Count = GetUnreadMessages(s.First().ToUser), MessageList = m };
}
在MessageList中返回0,则返回以下错误:
XMLHttpRequest无法加载http://localhost:56905/api/Get/GetMessagesbyUser/?userid=b852e7d4-d663-41d9-8db5-0b253df7c194。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:54623”访问。响应的HTTP状态代码为500。
但是如果它在MessageList中返回1或者更多,它可以完美地运行而不会抛出错误。
有人知道如何解决这个问题吗?如果需要,我可以提供更多代码。
答案 0 :(得分:3)
在这一行:
return new newMessageList() { Count = GetUnreadMessages(s.First().ToUser), MessageList = m };
您无条件访问s.First()
。当然,如果列表为空,它会引发异常。