Jquery Uploadify不在本地主机之外触发事件
我有一个非常直接的上传页面,允许用户上传文件,当我在本地机器上运行它时,它可以通过 问题是,当我尝试从localhost外部访问相同的内容时,即使试图通过machinename()访问它,页面加载/等等,一切似乎都正常工作,但没有传输任何内容,我打开了firebug,通常它会显示正在通过的任何ajax请求,但我什么也没有得到 有什么想法吗 我的上传代码:Jquery Uploadify不在本地主机之外触发事件,jquery,asp.net-mvc,uploadify,Jquery,Asp.net Mvc,Uploadify,我有一个非常直接的上传页面,允许用户上传文件,当我在本地机器上运行它时,它可以通过 问题是,当我尝试从localhost外部访问相同的内容时,即使试图通过machinename()访问它,页面加载/等等,一切似乎都正常工作,但没有传输任何内容,我打开了firebug,通常它会显示正在通过的任何ajax请求,但我什么也没有得到 有什么想法吗 我的上传代码: $('#uploadify').uploadify({ 'scriptAccess': 'always', 'uploader
$('#uploadify').uploadify({
'scriptAccess': 'always',
'uploader': '../../scripts/uploadify.swf', //flash source for handling the uploads and size checking
'cancelImg': '../../content/images/cancel.png', //cool cancel button
'script': '../../' + $('#Controller').val() + '/FileSave/' + $('#OrderID').val(), //sends files to the controller with apropriate data
'folder': 'Uploads', //sets the upload directory, not sure if this matters as the files are sent to the controller
'multi': true, //allows multiple uploads
'auto': false, //uploads dont start automatically
'queueSizeLimit': 5, //5 files can be in the queue at a time
'queueID': 'fileQueue', //div to contain the queue of files
'displayData': 'speed', //shows the transfer speed
'fileExt': '*.pdf', //limits to pdfs
'fileDesc': 'PDF', //shows a description in the browse window of filetypes
'sizeLimit': '5242880', //5mb limit
'scriptData': { 'CategoryID': $('#fileCategory').val() }, //passes the selected value of the category drop down
onComplete: function(event, queueID, fileObj, response, data) {//once a transfer completes fires an ajax function to pull in the files for the order
if (response == "Upload Successful") {//if response is successfull, updates div displaying files with new files
GetFiles($('#Controller').val());
}
}
});
更新:它似乎与scriptAccess设置有关,但即使设置为“始终”,正如uploadify网站上所说,它仍然没有启动任何后端脚本或我的onComplete功能
更新2:进一步检查,在非本地主机设置中,我的脚本路径似乎不正确,但现在脚本位于正确的位置,我在onComplete函数中得到的响应等于我登录页面的html输出。有什么想法吗
更新3:看起来我的脚本路径正常,只是出于某种原因,当不在本地主机上时,我收到了登录页面的响应,而不是从后端代码上传成功或上传失败。对于登录页面问题,flash似乎不尊重您的会话 假设您使用的是PHP,请确保在文章中从Flash对象传递PHP会话ID。例如,这是通过将其传递到设置中来完成的。然后,确保在会话开始前执行以下操作:
if( isset( $_POST['session_id'] ) && !empty( $_POST['session_id'] ) )
session_id( $_POST['session_id'] )
session_start();
编辑:我刚刚注意到这上面的ASP标签。我在ASP中找到了这篇关于flash会话的文章。希望这会有所帮助
编辑:更多上传+ASP特定信息
这看起来很有希望:::
对于登录页面问题,flash似乎不尊重您的会话 假设您使用的是PHP,请确保在文章中从Flash对象传递PHP会话ID。例如,这是通过将其传递到设置中来完成的。然后,确保在会话开始前执行以下操作:
if( isset( $_POST['session_id'] ) && !empty( $_POST['session_id'] ) )
session_id( $_POST['session_id'] )
session_start();
编辑:我刚刚注意到这上面的ASP标签。我在ASP中找到了这篇关于flash会话的文章。希望这会有所帮助
编辑:更多上传+ASP特定信息
这看起来很有希望:::
也有同样的问题,解决方案非常简单-将
crossdomain.xml
添加到Uploadify正在访问的web服务器的可见根文件夹中。
它应该包含以下信息
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="yourdomain"/>
</cross-domain-policy>
以便更好地理解此文件的全部要点
请尝试此方法,看看这是否是问题的根源。也有相同的问题,解决方案非常简单-将跨域.xml
添加到Uploadify正在访问的web服务器的可见根文件夹中。
它应该包含以下信息
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="yourdomain"/>
</cross-domain-policy>
以便更好地理解此文件的全部要点
请尝试此方法,看看这是否是问题的根源。尝试使用Fiddler而不是FireBug。您将看到更多HTTP详细信息。我不是Javascript大师,但是应该像'onComplete':func…
那样引用onComplete
吗?不,没有引号它工作得很好,我会检查它,谢谢这是一个方便的工具,不确定如何发现哪里出了问题,但它将我的响应url显示为我的登录页面,返回url是脚本应该发布文件的位置。您可以比较本地计算机的请求和服务器上的相应请求。如果它们是相同的(原因域不同),那么一定是服务器脚本有问题。我在fiddler中查看本地主机上的请求时遇到问题,如果是服务器脚本有问题,我可以在代码中的某个地方找到断点,但使用fiddler而不是FireBug甚至没有那么大的难度。您将看到更多HTTP详细信息。我不是Javascript大师,但是应该像'onComplete':func…
那样引用onComplete
吗?不,没有引号它工作得很好,我会检查它,谢谢这是一个方便的工具,不确定如何发现哪里出了问题,但它将我的响应url显示为我的登录页面,返回url是脚本应该发布文件的位置。您可以比较本地计算机的请求和服务器上的相应请求。如果它们是相同的(原因域不同),那么一定是服务器脚本有问题。我在fiddler中查看本地主机上的请求时遇到问题,如果是服务器脚本有问题,我可以在代码中的某个地方找到断点,但它甚至没有发现farI在SWFUpload上也有同样的问题。手动启动会话对我来说很有用。为什么这在本地主机上有效,而在生产服务器上不起作用,甚至在我的同一台机器上也不能通过机器名访问?我正在浏览你的链接文章,只是好奇你是否有任何想法,为什么我尝试实现你链接的博客文章中的代码,但我仍然没有让它与uploadify一起工作,还有其他建议吗?但似乎这就是问题所在,我的uploadify在IE中工作,现在我在IE中有了cookie,它在firefox中工作,想知道为什么本地主机上没有出现这种情况?添加了一个与ASP.Net MVC+Uploadify+Flash安全性/会话问题直接相关的新链接。我对SWFUpload也有同样的问题。手动启动会话对我来说很有用。为什么这在本地主机上有效,而在生产服务器上不起作用,甚至在我的同一台机器上也不能通过机器名访问?我正在浏览你的链接文章,只是好奇你是否有任何想法,为什么我尝试实现你链接的博客文章中的代码,但我仍然没有让它与uploadify一起工作,还有其他建议吗?但似乎这就是问题所在,我的uploadify在IE中工作,现在我的IE中有了cookie