juqery调用web api问题

chilli6519 2013-07-02 10:58:55
项目用.net mvc做的,项目中用到juqery.post调用web api,web api方法申明如下,editLecture(int uid ,Exam_DOCS edoc,smark)
其中第二个参数是一个model.在js中有相同结构的一个model,结构如下:
var Exam_DOCS = function () {
this.ownerid = "";
this.readtimer = 0;
this.smark = "";
this.thumbimg = "";
this.wbrief = "";
this.wordcontent = "";
this.wordgrade = 0;
this.wordid = 0;
this.wordscount = 0;
this.wordsmark = "";
this.wordtitle = "";
this.wordtype = 0;
}
js中调用此api方法的代码如下(调用网站和web api是两个不同的网站):

var url = "http://localhost:1789/Lecture/editLecture";
var params= new Exam_DOCS()
params.uid = 14
params.smark = "ssss"
$.ajax({
type: "POST",
url: url,
dataType: "json",
data: params,
async: true,
processData: true,
success: function (html) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("异步提交出错!");
}
});

结果直接出现错误,没有进入web api中相应方法的断点,错误信息如下:
XMLHttpRequest: 网络错误 0x80070005, 拒绝访问。
跨域问题已解决过了,同一api中还有其它get方法,调用成功,这个editLecture是HttpPost,调用失败
我猜了一下,很可能的原因出现在第二个参数edoc中,是不是实体类型的传参方式与普通参数不同,也有可能HttpPost和HttpGet调用方式不同,初学web api,请大家指教。
...全文
162 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
零点逸族 2013-07-03
  • 打赏
  • 举报
回复
引用 3 楼 yumenjianke 的回复:
如果跨域你用的是jsonp的话,我悄悄的告诉你,所有jsonp的请求都是用GET,不可能用POST的。所以你的方法要用POST去调用,那是不可能的。
跨域就不要想用POST,具我了解,理论上也是有这个可能的,但是复杂程度听说不亚于中了500w
零点逸族 2013-07-03
  • 打赏
  • 举报
回复
如果跨域你用的是jsonp的话,我悄悄的告诉你,所有jsonp的请求都是用GET,不可能用POST的。所以你的方法要用POST去调用,那是不可能的。
chilli6519 2013-07-03
  • 打赏
  • 举报
回复
js中实体就是这种结构。我传的参数是实体。
joyhen 2013-07-03
  • 打赏
  • 举报
回复
跨域中间搭个桥就可以了,ajax请求本地文件,这个文件获取web api请求回来的值,然后再返回到页面即可
csdnfan 2013-07-02
  • 打赏
  • 举报
回复
参数你换成:{ownerid :""}这种形势的试一试看。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧