WebAPI 控制器在通过 jQuery 调用时重定向到原始 JSON 视图
WebAPI Controller redirects to raw JSON view when called via jQuery
我有一个 ASP.NET 的MVC应用程序。我正在尝试调用 WebAPI 控制器。当我在jQuery中通过$.get调用它时,控制器工作正常。完成回调函数后,一切都应该停止,我应该能够看到我的网页。但是,在完成回调函数后,浏览器会将我带到chrome中的原始JSON视图页面。在IE中,它会询问我是否要下载返回的.json文件。为什么会这样。这是我的代码:
function onNLookupSearch() {
var uri = window.location.protocol + "//" + window.location.host;
var searchTerm = $("#nlookupsearch").val();
var resultUrl = window.location.href = uri + "/api/v1/GetNetworkName?networkName=" + searchTerm;
$.get(resultUrl, function (data1) {
localData1 = data1;
$("#sdnetworkselect").kendoDropDownList({
dataSource: localData1,
dataTextField: "NETWORK_NAME",
dataValueField: "NETWORK_ID"
});
$("#hdnetworkselect").kendoDropDownList({
dataSource: localData1,
dataTextField: "NETWORK_NAME",
dataValueField: "NETWORK_ID"
});
});
}
这是我的 WebAPI 控制器代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using CPT2.Data;
namespace CPT2.Controllers
{
public class GetNetworkNameController : ApiController
{
private CMDBdbContext _ctx;
public GetNetworkNameController(CPT2.Data.CMDBdbContext ctx)
{
_ctx = ctx;
}
public IQueryable<CPT2.Data.network_sourceid_map> Get([FromUri] string networkName)
{
var result =
_ctx.network_sourceid_map.Where(
nw => nw.NETWORK_NAME.Contains(networkName) || nw.SOURCE_NAME.Contains(networkName));
var myList = result.Select(item => item.NETWORK_NAME + " - " + item.SOURCE_NAME + " [" + item.SOURCE_ID + "]").ToList();
//return myList;
return result;
}
}
}
假设我搜索"ESPN"。这是上面代码中的搜索词。
完成此功能后,我应该留在页面上,但是Chrome将我重定向到返回数据的原始视图,IE要求我保存JSON文件。
我认为你的问题是这一行:
var resultUrl = window.location.href = uri + "/api/v1/GetNetworkName?networkName=" + searchTerm;
您正在设置 window.location.href,它将整个页面重定向到 API"页面",这就是您获得 .json 文件的原因。
相关文章:
- 通过javascript重定向html传递php变量
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 使用angular重定向到html页面
- 如何在chrome扩展中重定向到html页面
- 无法从jquery Mobile导航栏重定向到另一个页面
- ng视图外的链接重定向到ng视图内的页面
- 在phonegap应用程序内部重定向不起作用
- CORS-重定向到第二个GET正在接收的页面
- Iframe提交并将用户重定向回原始页面,但Iframe似乎仍然存在
- 在视图中重定向会破坏原始控制器操作(Yii)
- 如何进行服务器端HTTP重定向更新引用程序(更改原始引用程序)
- 重定向到新页面,但记住原始位置
- 如果未处于登录状态,如何重定向到登录页面,登录后重定向到原始页面
- 在 中显示警告框 asp.net 将重定向到空白页,然后返回到原始页面
- WebAPI 控制器在通过 jQuery 调用时重定向到原始 JSON 视图
- 重定向后,如何显示来自原始文件的错误消息
- 有没有办法更改浏览器's的URL,而不将第一个原始请求重定向到服务器
- PhantomJs:如何停止重定向到另一个URL并加载原始URL
- 如何将经过身份验证的用户重定向回其原始页面
- Rails 4渲染js:重定向到另一个页面并显示原始js