Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数作为jqueryajax中的参数_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 函数作为jqueryajax中的参数

Javascript 函数作为jqueryajax中的参数,javascript,jquery,ajax,Javascript,Jquery,Ajax,是否可以将函数放入jQueryAjax的参数中,如下所示。数据类型和数据作为函数给出。如果returntype为JSON,则dataType返回JSON值;如果isJson为false,则返回text值 dataVal和dataVar是包含用于构造数据参数的参数名称和值的数组。data:函数的结果将是一个字符串,如下所示: {dataVar[0]:dataVal[0],dataVar[1]:dataVal[1],.....,} 当我尝试这个方法时,我遇到了一个错误,所以,我只是想知道这个方法是

是否可以将函数放入jQueryAjax的参数中,如下所示。数据类型和数据作为函数给出。如果returntype为JSON,则dataType返回JSON值;如果isJson为false,则返回text值

dataVal和dataVar是包含用于构造数据参数的参数名称和值的数组。data:函数的结果将是一个字符串,如下所示:

{dataVar[0]:dataVal[0],dataVar[1]:dataVal[1],.....,}
当我尝试这个方法时,我遇到了一个错误,所以,我只是想知道这个方法是否可行

function getAjaxResponse(page, isJson, dataVar, dataVal, dfd) {
    $.ajax(page, {
        type: 'POST',
        dataType: function () {
            if (isJson == true) {
                return "JSON";
            } else {
                return "text";
            }
        },
        data: function () {
            var dataString = '{';
            for (var i = 0; i < dataVar.length; i++) {
                dataString = dataString + dataVar[i] + ':' + dataVal[i] + ',';
            }
            console.log(dataString);
            return dataString + '}';
        },
        success: function (res) {
            dfd.resolve(res);
        }
    });
}
因此,我的服务器无法获取正确的参数名称。

来自:

资料 类型:PlainObject或String

所以没有

调用函数。使用返回值

data: function () { ... }();
//                       ^^ call the function
发件人:

资料 类型:PlainObject或String

所以没有

调用函数。使用返回值

data: function () { ... }();
//                       ^^ call the function

不是那样的。但它只需稍作改动即可工作:

(function () {
    if (isJson == true) {
        return "JSON";
    } else {
        return "text";
    }
})()
这应该行得通。您只需在创建函数后立即调用它。这样,数据类型就是一个字符串,脚本就可以工作了。
数据也是如此。这里也使用函数{}-表示法

而不是那样。但它只需稍作改动即可工作:

(function () {
    if (isJson == true) {
        return "JSON";
    } else {
        return "text";
    }
})()
这应该行得通。您只需在创建函数后立即调用它。这样,数据类型就是一个字符串,脚本就可以工作了。
数据也是如此。在这里也使用函数{}-表示法

您需要用括号调用函数,如下所示:

function func1(){
//func1 code in here
}
function func2(func1){
//func2 code in here
//call func1 like this:
func1();
}
因此,您可以这样使用:

data: function () {
//your stuff her
}(); // which mean you are having data()

您需要使用括号调用函数,如下所示:

function func1(){
//func1 code in here
}
function func2(func1){
//func2 code in here
//call func1 like this:
func1();
}
因此,您可以这样使用:

data: function () {
//your stuff her
}(); // which mean you are having data()
jquery只是在请求的末尾添加了一个:如下所示:

{dataVar[0]:dataVal[0]}:
{dataVar[0]:dataVal[0]}:
不,您的devtools会显示。但是,由于您的数据字符串不包含=符号,并且您将内容作为application/x-www-form-urlencoded发送,因此整个正文将被解释为一个参数名

要发送JSON,您应该:

使用contentType:application/json 使用数据:JSON.stringify.objectdataVar,dataVal1 确保使用正确的头发送有效的JSON,并在服务器上正确识别

1:u.object是完全按照您的要求执行操作的对象,但您也可以使用: stringifyfunctionp,v{var d={};forvar i=0;i jquery只是在请求的末尾添加了一个:如下所示:

{dataVar[0]:dataVal[0]}:
{dataVar[0]:dataVal[0]}:
不,您的devtools会显示。但是,由于您的数据字符串不包含=符号,并且您将内容作为application/x-www-form-urlencoded发送,因此整个正文将被解释为一个参数名

要发送JSON,您应该:

使用contentType:application/json 使用数据:JSON.stringify.objectdataVar,dataVal1 确保使用正确的头发送有效的JSON,并在服务器上正确识别

1:u.object是完全按照您的要求执行操作的对象,但您也可以使用:
JSON.stringifyfunctionp,v{var d={};forvar i=0;iI不这样认为,您必须将数据和数据类型设置为这些函数执行的结果,而不使用JSON。stringify?只需输入数据类型:isJson?JSON:text,…@Bergi:根据答案,代码现在可以工作,但“data”结果不被接受。显然,返回值只是作为参数名处理。发送的数据是这样的:{TableName:tblLGRQueryTracking}:什么不接受?数据是无效的还是格式?{TableName:tblLGRQueryTracking}至少没有有效的JSON我不这么认为,您必须将数据和数据类型设置为这些函数执行的结果,而不使用JSON。stringify?只需输入数据类型:isJson?JSON:text,…@Bergi:根据答案,代码现在可以工作,但“数据”结果不被接受。显然,返回值只是作为参数n处理ame.发送的数据如下:{TableName:tblLGRQueryTracking}:什么不接受?数据无效还是格式?{TableName:tblLGRQueryTracking}至少没有有效的JSON。不需要将整个内容包装在括号中,它位于对象文字中,因此它已经位于上下文中,将使其成为函数表达式而不是函数声明。不需要将整个内容包装在括号中,它位于对象文字中,因此它已经位于将使其成为函数表达式的上下文中函数表达式而不是函数声明。回答了原始问题。谢谢..:-回答了原始问题。谢谢..:-如果我只想将数据作为数据发送:{dataVar[0]:dataVal[0]}正如我已经成功地做了很长一段时间的工作,而不是JSON内容。如果它能工作,请随意做,但a不要将其称为JSON b不要期望您的服务器正确解析它c不要期望devtools正确显示请求,JSON.stringify方法非常有效。我接受了您的提示,尝试添加一个等于而不是分号服务器端程序似乎接受了它。脆弱,但仍在工作。感谢您的所有帮助…:-如果我只是想将数据作为数据发送:{dataVar[0]:dataVal[0]}因为我已经成功地做了很长时间,而不是作为JSON内容。如果它有效,请按您的意愿发送,bu
a不要称之为JSON b不要期望您的服务器正确解析它c不要期望devtools正确地显示请求库,JSON.stringify方法非常有效。我接受了您的提示,尝试添加一个等号而不是分号,服务器端程序似乎接受了它。脆弱的,但工作。谢谢你的帮助……:-