Javascript 如何在ColdFusion.cfc函数中使用ajax调用上传文件?

Javascript 如何在ColdFusion.cfc函数中使用ajax调用上传文件?,javascript,jquery,ajax,file-upload,coldfusion,Javascript,Jquery,Ajax,File Upload,Coldfusion,我想知道我是否可以在.cfc页面上使用ajax结合coldfusion功能上传文件?我已经在JQuery中创建了我的ajax调用,并且在.cfc页面上有函数,但是调用之后我得到了奇怪的ajax响应。这是我的密码: <form name="myForm" id="myForm" method="POST"> <table role="presentation"> <tr> <td>Order: &l

我想知道我是否可以在.cfc页面上使用ajax结合coldfusion功能上传文件?我已经在JQuery中创建了我的ajax调用,并且在.cfc页面上有函数,但是调用之后我得到了奇怪的ajax响应。这是我的密码:

<form name="myForm" id="myForm" method="POST">
  <table role="presentation">
    <tr>
        <td>Order:
            <select name="order" id="order">
               <option value="1">1</option>
               <option value="2">2</option>
               <option value="3">3</option>    
            </select>
        </td>
    </tr>
    <tr>
        <td>User ID: 
            <select id="userID" name='userID'>
               <option value='0567'>0567</option>
               <option value='0568'>0568</option>
               <option value='0569'>0569</option> 
            </select>
        </td>
    </tr>
    <tr>
       <td>File for upload:   
          <input type="file" id="fileUpload" name="fileUpload" onChange="fileSubmit()"/>
       </td>
    </tr>
  </table>
</form>
FileUpload.cfc页面:

<cfcomponent>
    <cfsetting enablecfoutputonly="yes" showdebugoutput="no">
    <cffunction name="fileUpload" access="remote" output="true">
        <cfargument name="order" type="string" required="yes">
        <cfargument name="userID" type="string" required="yes">
        <cfargument name="fileUpload" type="string" required="yes">

        <cfset fncResults = StructNew()>

        <cfif arguments.order NEQ '' and arguments.userID NEQ ''>
            //Here is my file upload and I'm setting status of 200
            <cfset fncResults.status = "200">
        <cfelse>
            <cfset fncResults.status = "400">
            <cfset fncResults.message = "Invalid access attempt">
        </cfif>

        <cfreturn fncResults>
    </cffunction>
</cfcomponent>

我想知道在这种情况下如何检查200的状态?通常我过去返回到页面的所有内容都是JSON格式的。如果有人能帮我解决这个问题,请告诉我

您不必“检查”状态200,因为
.done()
仅在成功时触发,即状态代码200。

所以您的意思是,如果我可以访问.done()中的警报(),这意味着我的呼叫成功?是的。但是,这取决于您使用的版本。您可能需要改用
.success()
。也许您应该在coldfusion中使用serializeJSON()序列化返回的JSON格式值,然后检查条件。
<cfcomponent>
    <cfsetting enablecfoutputonly="yes" showdebugoutput="no">
    <cffunction name="fileUpload" access="remote" output="true">
        <cfargument name="order" type="string" required="yes">
        <cfargument name="userID" type="string" required="yes">
        <cfargument name="fileUpload" type="string" required="yes">

        <cfset fncResults = StructNew()>

        <cfif arguments.order NEQ '' and arguments.userID NEQ ''>
            //Here is my file upload and I'm setting status of 200
            <cfset fncResults.status = "200">
        <cfelse>
            <cfset fncResults.status = "400">
            <cfset fncResults.message = "Invalid access attempt">
        </cfif>

        <cfreturn fncResults>
    </cffunction>
</cfcomponent>
<wddxPacket version='1.0'><header/><data><struct><var name='STATUS'><string>200</string></var></struct></data></wddxPacket>