繁体   English   中英

使用$ ajax调用WCF服务时,获取s.Type.ToUpperCase()不是函数

[英]Getting s.Type.ToUpperCase() is not a function when calling WCF service with $ajax

我正在使用WCF,但出现此错误。 如果我使用jQuery1.14.1我得到

类型错误:s.type.ToUpperCase不是函数
类型= s.type.ToUpperCase();

如果我在本地使用jQuery 1.12.1,则会正确调用该服务。 但是,如果我在服务器上尝试使用它,则1.14.1会收到上述错误,而1.12则会显示此错误:

类型错误:l.type.ToUpperCase()不是函数.. + && n.event.trigger(“ ajaxStart”),l.type = l.type.ToUpperCase(),l,hasContent =!Kb.tes.。 ..

相关代码:

var Type = "POST";
var DataType = "jsonp";
var ProcessData = true;
var ContentType = "application/json; charset=utf-8";

var params = {
    user: $("#userid_hidden").val().toString(),
    permission: $("#permission_id_" + i).val().toString(),
    enabled: true,
    note: $("#permission_note_" + i).val(),
    write: $("#permission_write_" + i).is(":checked")
}
SetPermission(params);

function SetPermission(params) {
    //alert('setting permission');
    if (params.enabled)
        CallService('wsEnablePermissionJSON', params);
    else
        CallService('wsDisablePermissionJSON', params);
}

function CallService(wsName, params) { //Generic function to call WCF  Service

    alert('calling service');
    $.ajax({
        type: Type, //GET or POST or PUT or DELETE verb
        url: Url + wsName, // Location of the service
        data: JSON.stringify(params),
        /*data: JSON.stringify(params),                          //Data sent to server*/
        contentType: ContentType, // content type sent to server
        dataType: DataType, //Expected data format from server
        processdata: ProcessData, //True or False
        success: function(msg) { //On Successful service call
            ServiceSucceeded(msg, wsName);
        },
        error: ServiceFailed // When Service call fails
    });
    alert('service called');
}

我看不到其余的错误,因为然后重新加载了页面,我通过截屏得到了这些信息。

我不知道该怎么做,我尝试了jQuery 2,但遇到了第一个错误。 我在另一个wcf服务中使用了相同的ajax调用,并且目前运行良好(唯一的区别是工作的人使用jQuery 1.12,并在本地解决了该问题,在服务器中新的失败了。)

两个页面都在同一服务器上。

我一直试图解决这一问题,但是我一无所获,起初我认为使用1.12可以解决问题。 我搜索了该错误,但所有结果都针对不同的情况,对于$ ajax调用,我什么都没有看到。

发生这种情况是因为变量Type的名称

 var Type = "POST";

我之前从未想过要更改它,因为正如我之前说过的,我有另一个非常相似的Web应用程序,并且使用完全相同的Ajax调用也可以正常工作,而我从某个地方的示例中获得了该代码。

更改为

 var Requestype = "POST";

照顾了错误

我遇到了相同的错误,但原因有所不同。 我不小心在type属性而不是POST传递了true值。

如果包含可接受动词以外的任何值。 请记住,如果未提供 ,则默认为GET

希望这对某人有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM