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