【发布时间】:2020-12-12 05:07:10
【问题描述】:
本地代码工作正常,但上传到服务器时显示 500 [内部服务器错误] 我尝试过使用单个参数,但不适用于实时环境
- 参数在 JSON.stringify(itemlist) 中
这是我的 ajax 代码:
var itemlist = new Array();
var item = {
Fnumber: Fnumber, Snumber: Snumber, Flag: Flag, Page: _pageName, bulkupdate: false, sortText: $("#hdnsorting").val(), excel: false, filtCompany: $("#hdnfilterCompanies").val(), ShowDDLvalue: ddlValue, url: "localhost"
}
itemlist.push(item);
$.ajax({
url: '/CompanyContact/GetContacts',
data: JSON.stringify(itemlist),
dataType: "json",
type: "POST",
cache: false,
contentType: "application/json; charset=utf-8",
success: function (data) {}
});
这是我的控制器方法,它具有用于参数列表的 FilterParameters 模型:
[HttpPost]
public JsonResult GetContacts(List<FilterParameters> item)
{
var List = _api.PostRequest<List<FilterParameters>, Contacts>(_baseAPIurl + "contacts", item, Convert.ToString(Session["AccessToken"]));
return Json(List.Result, JsonRequestBehavior.AllowGet);
}
这是我的 API 调用:
public async Task<List<TOut>> PostRequest<TIn, TOut>(string uri, TIn content, string token)
{
List<TOut> DataList = new List<TOut>();
try
{
using (var client2 = new HttpClient())
{
// token authorization
client2.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
client2.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var serialized = new StringContent(JsonConvert.SerializeObject(content), Encoding.UTF8, "application/json");
var postTask = client2.PostAsJsonAsync<TIn>(uri, content);
postTask.Wait();
var result = postTask.Result;
if (result.IsSuccessStatusCode)
{
var readTask = result.Content.ReadAsAsync<TOut[]>();
readTask.Wait();
var Data = readTask.Result;
DataList = Data.ToList();
return DataList;
}
else
{
return DataList = null;
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return null;
}
}
还尝试发送 FilterParameters 模型对象的所有参数,但失败。 提前致谢。
【问题讨论】:
-
您能否详细介绍一下 500 内部服务器错误。这样更容易找到问题的根源
-
嗨 Muhammad,从 ajax 调用控制器方法时,它说:加载资源失败:服务器响应状态为 500 [Internal server error],有时会得到 404(未找到)- 某处控制器和 PostRequest 方法之间不起作用
-
如果服务器响应状态为 404,这意味着它无法找到您的 API,这意味着您需要重新检查从客户端构建的 url
-
或者你的服务器知道 _baseapiurl 还是被设置为本地的
-
我在网络配置中设置了 _baseapiurl。 URL 显示正确。我们需要一些 Live API 的设置吗?
标签: c# jquery ajax asp.net-mvc asp.net-web-api