【发布时间】:2015-03-30 05:10:41
【问题描述】:
我是 JSON 新手,实际上是 Javascript。我实际上从某人那里找到了代码,并尝试为我正在尝试做的事情实现它。
在我的 javascript 上,我有:
function signin(var1,var2) {
Signin('login.htm?var1=' + var1 + '&var2=' + var2);
}
function skypeme(var1, var2) {
$.ajax({
url: "skypeme.cfc",
dataType: "json",
data: {a:var1, b:var2},
success: function(userData) {
if(userData.LOGIN == 'true' && userData.ID!='') {
window.location = 'skype:'+userData.ID+'?chat';
}
else {
signin(var1,var2);
}
}
});
}
在我的 skypeme.cfc 上:
<cfcomponent output="false">
<cffunction name="cfskypeme" access="remote" returnformat="JSON" output="false">
<cfargument name="a" required="true">
<cfargument name="b" required="true">
<cfset var stReturn = structNew()>
<cfset stReturn.LOGIN=false>
<cfset stReturn.ID="">
if user login
check database for skypeid
<cfif skypelist.recordcount eq 1>
<cfset stReturn.LOGIN=true>
<cfset stReturn.ID=skypelist.skype>
</cfif>
<cfreturn SerializeJSON(stReturn)>
if user not login
<cfreturn SerializeJSON(stReturn)>
</cffunction>
</cfcomponent>
我想要做的是调用cfc并检查用户是否登录,如果没有调用登录功能。如果用户已经登录,请检查数据库。如果找到Skype id,则启动Skype,如果没有,则什么也不做。但是发生的事情是当我从我的 html 调用 skypme() 函数时,什么也没有发生。没有错误,但 Skype 无法启动。
从 cffunction 传递 JSON 值以便它可以在 javasctipt 端执行的正确方法是什么?我尝试了很多方法,但无法让它发挥作用。请帮忙。谢谢。
【问题讨论】:
-
不,您的 javascript ajax 请求需要 json,您应该返回 json,而不是 javascript。
-
在您的 Skype me.cfc 中,您的任何
cfif或cfreturn语句中都不需要cfoutput或#。 -
<cfif user is login>是个问题。没有任何迹象表明这些变量确实存在。 -
@KevinB 如何将这些返回更改为 JSON?
-
@John 发生在你身上,只返回一个结构或数组。
标签: javascript jquery json coldfusion skype