Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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 有没有一种方法可以使用XMLHttpRequest()将json发送到远程cfc?_Javascript_Ajax_Json_Coldfusion - Fatal编程技术网

Javascript 有没有一种方法可以使用XMLHttpRequest()将json发送到远程cfc?

Javascript 有没有一种方法可以使用XMLHttpRequest()将json发送到远程cfc?,javascript,ajax,json,coldfusion,Javascript,Ajax,Json,Coldfusion,我已经尝试了很多不同的选项来将json数据发送到cfc而不使用jquery,我的问题是如何使用XMLHttpRequest()而不是$.ajax来实现这一点?它将请求发送给CFC,但我无法将任何变量传递给CFC。它一直在说“FORMDATA”(这是我的,但没有传入),我有一个名为FORMDATA的变量。我能让它工作的唯一方法是使用新的formData()对象,但我需要它在IE 8和9中工作 <cfcomponent> <cffunction name="valid

我已经尝试了很多不同的选项来将json数据发送到cfc而不使用jquery,我的问题是如何使用XMLHttpRequest()而不是$.ajax来实现这一点?它将请求发送给CFC,但我无法将任何变量传递给CFC。它一直在说“FORMDATA”(这是我的,但没有传入),我有一个名为FORMDATA的变量。我能让它工作的唯一方法是使用新的formData()对象,但我需要它在IE 8和9中工作

  <cfcomponent>

    <cffunction name="validate" access="remote" >

        <cfargument name="formdata" required="true" type="string"/>

        <!--- <cfif isJSON(arguments.formdata)>
            <cfset values = deserializeJSON(arguments.formdata)>
        </cfif> --->
        <cfdump var="#variables#">
        <cfdump var="#arguments#">

        <cfreturn { STATUS = 200, MESSAGE = "data recieved"}>

    </cffunction>

</cfcomponent>

我不确定我做错了什么

您需要发送表单编码数据,使其位于
表单
范围内(
参数
在远程调用CFC函数的情况下)。因此,将内容类型更改为:

xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded')

并将send()调用更改为:

xhr.send(“formdata=“+JSON.stringify(data))


它应该作为一个JSON字符串传递到
参数.formdata
参数。

标题没有反映您的实际问题。很抱歉,我重新编写了标题这是一个很好的方法谢谢您我实际上也用angular jshaha做了,你说没有jquery,所以我认为你的意思是没有任何类型的库b/c出于某种原因,你被限制使用普通的ol'js
        var params = "method=validate&returnformat=json";
        params += "&formdata=" + json;

        $http({
               method: 'POST', 
               url: 'validation.cfc', 
               data:params, 
               headers: {"Content-type":"application/x-www-form-urlencoded"}
        }).success(function(data){

            console.log(data);

        })
        var params = "method=validate&returnformat=json";
        params += "&formdata=" + json;

        $http({
               method: 'POST', 
               url: 'validation.cfc', 
               data:params, 
               headers: {"Content-type":"application/x-www-form-urlencoded"}
        }).success(function(data){

            console.log(data);

        })