Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Uploadify不在本地主机之外触发事件_Jquery_Asp.net Mvc_Uploadify - Fatal编程技术网

Jquery Uploadify不在本地主机之外触发事件

Jquery Uploadify不在本地主机之外触发事件,jquery,asp.net-mvc,uploadify,Jquery,Asp.net Mvc,Uploadify,我有一个非常直接的上传页面,允许用户上传文件,当我在本地机器上运行它时,它可以通过 问题是,当我尝试从localhost外部访问相同的内容时,即使试图通过machinename()访问它,页面加载/等等,一切似乎都正常工作,但没有传输任何内容,我打开了firebug,通常它会显示正在通过的任何ajax请求,但我什么也没有得到 有什么想法吗 我的上传代码: $('#uploadify').uploadify({ 'scriptAccess': 'always', 'uploader

我有一个非常直接的上传页面,允许用户上传文件,当我在本地机器上运行它时,它可以通过

问题是,当我尝试从localhost外部访问相同的内容时,即使试图通过machinename()访问它,页面加载/等等,一切似乎都正常工作,但没有传输任何内容,我打开了firebug,通常它会显示正在通过的任何ajax请求,但我什么也没有得到

有什么想法吗

我的上传代码:

$('#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