【问题标题】:ColdFusion Calling CFC page for ajaxajax 的 ColdFusion 调用 CFC 页面
【发布时间】:2016-09-06 13:29:14
【问题描述】:

大家好,我正在尝试调用以下 cfm 页面以通过 ajax 调用 cfc 页面:

https://dev-thesite.com/personnel/search.cfm页面:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script>      
 $(document).ready(function() {
    $.ajax({
        type:'GET',
        url: 'search_ajax.cfc?method=searchAward',
        data: {
            Totals:'100', 
            CodeNum:'165161', 
            TestYear:'2016',
            SelType:'blah', 
            SelJuris:'juris'
        },
        success: function(data) {
            alert(data);
        },
        error: function(data) {
            console.log('err: ', data);
        }
    });
 });     
 </script>
 <div id="testing"></div>

https://dev-thesite.com/personnel/search_ajax.cfc页面:

<cfcomponent>
    <cffunction name="searchAward" access="remote" returntype="string">
            <cfargument name="Totals" type="string" required="true">
            <cfargument name="CodeNum" type="string" required="true">
            <cfargument name="TestYear" type="string" required="true">
            <cfargument name="SelType" type="string" required="true">
            <cfargument name="SelJuris" type="string" required="true"> 
        <cfscript>
            if(arguments.Totals = '5'){
                return 'YES!';
            } else {
                return 'NO!';
            }
        </cfscript>
    </cffunction>
</cfcomponent>

目前在运行此程序时,我得到了 ajax 调用的 error 方面。

500 - 内部服务器错误。

你要找的资源有问题,无法显示。

任何帮助都可以很好地解决 ColdFusion 9 中的这个错误!

【问题讨论】:

  • 进入 CFAdmin 并启用调试,以便您可以看到错误。看起来您在 if 子句中使用的是赋值语句而不是比较。
  • 另外,根据the docs@,看起来arguments 需要是Arguments
  • 直接从ColdFusion调用该方法,看看是否报错。
  • @DanBracuk 是的,去 dev-thesite.com/personnel/… 时确实有相同的 500 错误
  • 您需要在 CF Administrator 中的 Debugging Settings 下勾选“Enable Robust Exception Information”才能看到发生了什么。出现简单的“500 Oops 出了点问题”错误,所有的赌注都被取消了。

标签: javascript jquery ajax coldfusion coldfusion-9


【解决方案1】:

好吧,看起来所有的错误都是改变这个:

if(arguments.Totals = '5'){

到这里:

if(arguments.Totals eq '5'){

只是添加 eq 似乎已经很奇怪地修复了它。

【讨论】:

  • eq 是 ColdFusion 的传统相等运算符。从 ColdFusion 9 开始,您可以在 &lt;cfscript&gt; 部分将其写为 === 是赋值运算符。我也没有发现(compare the documentation)
  • 完全有道理。在原始版本中,您只是将 var 设置为“5” - 这可能会导致您的 500 错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多