javascript – 当没有提供Content-Type”application / Json“时,C#[WebMethod]没有命中
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 当没有提供Content-Type”application / Json“时,C#[WebMethod]没有命中,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1651字,纯文字阅读大概需要3分钟。
内容图文
我创建了一个C#WebMethod
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static HttpResponseMessage GetPageHtml(string file, int page)
{}
我可以调用它,当我添加标题Content-Type:’application / Json’时,使用Ajax,angular,Postman可以正常工作.这是示例HTTP请求,它正常工作.
$http({
url: 'default.aspx/GetPageHtml?file=' + JSON.stringify(selectedFile) + '&page=' + itemNumber,
method: "GET",
headers: { 'Content-Type': 'application/json' },
data:''
}).then(function successCallback(response) {
return response.d;
}, function errorCallback(response) {
});
但是,当我调用与iframe ng-src相同的方法时,它无效.
<iframe ng-src="default.aspx/GetPageHtml?file=candy.pdf&page=1" style="height: 150px;"></iframe>
我通过谷歌Chrome的开发者工具检查了这个Http调用,发现Content-Type是’text / html’,这就是为什么它没有打到我的WebMethod.请看这个截图.
Iframe ng-src
我对Google和Stackoverflow进行了很多调查,但我找不到为什么我需要提供Content-Type:’application / json’来调用我的WebMethod
解决方法:
我进一步调查了我的问题,并试图找到其他方法,我想出了一个解决方案.我创建了一个名为GetDocumentHtml.aspx的新WebForm,并在其Page_Load方法中进行操作,我以前在GetPageHtml WebMethod中进行操作.
现在在iframe ng-src我提供这个URL
/GetDocumentHtml.aspx?file=calibre.docx\u0026amp;page=1
代替
?的Default.aspx / GetPageHtml文件= candy.pdf&安培;页= 1
在Page_Load方法中,我使用以下代码来获取URL参数
var file = GetValueFromQueryString("file");
var page =Convert.ToInt32(GetValueFromQueryString("page"));
GetValueFromQueryString方法
private String GetValueFromQueryString(String value)
{
try
{
return Request.QueryString[value].ToString();
}
catch (System.Exception exp)
{
return String.Empty;
}
}
我希望这些信息对某人有所帮助.谢谢.
内容总结
以上是互联网集市为您收集整理的javascript – 当没有提供Content-Type”application / Json“时,C#[WebMethod]没有命中全部内容,希望文章能够帮你解决javascript – 当没有提供Content-Type”application / Json“时,C#[WebMethod]没有命中所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。