我试图了解如何使用JSONutil在jquery和coldfusion之间对JSON进行序列化/反序列化。我对Coldfusion
7感到困惑,因此无法returnformat='json'
在cfc中使用该属性。
client.cfc:
<cfcomponent>
<cffunction name="GetClientsByName"
returntype="query"
hint="get clients from search term">
<cfargument name="name" type="string" required="yes">
<cfquery name="GetClientsByName" datasource="#application.dsn#">
SELECT client_id, client_name
FROM Clients
WHERE client_name LIKE '%' + <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.name#"> + '%'
</cfquery>
<cfreturn GetClientsByName>
</cffunction>
</cfcomponent>
jQuery ajax调用:
function getClients(name){
$.ajax {
type: "post"
url: "/surveymanagement/admin/client.cfc",
dataType: "json",
data: {
method: "GetClientsByName",
name: name
},
success: function(data){
$("#here").html(data)
}
}
现在在哪里以及如何使用jsonutil使它工作?
jsonutil的网站:http ://jsonutil.riaforge.org/
(简要说明,我的建议是首先让cfc单独工作。用这种方法调试CF问题要容易得多。在确认cfc返回所需的JSON字符串之前,请勿将jquery添加到混合中。但是回到您的问题…)
该实用程序易于使用。在函数内部,创建它的实例。然后将您的查询对象传递到中serializeJSON()
。最后返回结果字符串。
注意,您的函数签名必须支持远程访问并返回字符串(不是查询)
<cffunction name="GetClientsByName" access="remote" returntype="string">
<cfargument name="name" type="string" required="yes">
<!--- always localize function variables --->
<cfset var util = createObject("component", "path.to.JSONUtil")>
<cfset var getClientsByName = "">
.... run cfquery .....
<!--- return JSON string --->
<cfreturn util.serializeJSON(getClientsByName)>
</cffunction>
您可以直接在浏览器中(或使用cfinvoke
)测试cfc :
http://localhost/path/to/client.cfc?method=getClientsByName&name=foo
但是,IMO的查询本机表示有点尴尬。如Lance所述,您可能更喜欢返回结构数组,这是更标准的。
<cfset var results = arrayNew(1)>
<cfset var elem = "">
... run query ...
<cfloop query="getClientsByName">
<cfset elem = structNew()>
<cfset elem["client_id"] = getClientsByName.client_id>
<cfset elem["client_name"] = getClientsByName.client_name>
<cfset arrayAppend(results, elem)>
</cfloop>
<cfreturn util.serializeJSON(results)>
我正在尝试使用JQuery在Ajax中向请求添加头。 以下是代码:- 然后我使用了要求(要求是chrome火狐插件,我们可以手动添加一个标题到请求)。 手动添加标题后:- 在这两个pics请求头中,“ACCESS-CONTROL-request-HEADERS”中都有x-auth-token,但第二个pic中有“x-auth-token”头和头值,而第一个pic中没有。 所以我的问题是如何使用JQ
我正在尝试使用Struts 2和jQuery构建Web应用程序。 在改变下拉列表时,我需要从数据库中获取详细信息。在我的< code>struts.xml配置中,我将方法和操作定义如下: 当我在所有相应位置进行更改后执行应用程序时,请求被传递给 类和 DAO 方法,并且控件成功返回到屏幕。但是返回的数据在屏幕上不可用,我收到一条错误消息: url…404未在jQuery中找到(匿名函数)ajax。
如何在jQuery AJAX中更改成功块中freemarker变量的值,我的页面有两个控制器第一个控制器使用GET方法返回一个带有视图名称的简单字符串,第二个控制器使用json和POST方法处理数据 给你 我的第二个控制器 我的Json方法 我的传呼myform.html 到目前为止,我的freemarker变量得到了我放在success块中的值,但在我按下submit按钮之前它显示为succes
我能够在Java中使用XSLT1.0,如以下示例所示:- copy.xml copy.xsl copy.java 输出
editor.fxml,使用: 实际上,我找不到这两种代码有什么不同。我错过什么了吗?
问题内容: 我想创建一个属性字符串,然后将其存储在中,然后再次访问它,并将属性字符串分配给。我该怎么办?提前致谢。 问题答案: 您必须将转换为,然后将其存储在中。