2014-06-11 96 views
-1

我已经为图片编写了一个显示引擎(在代码中称为mpv.html)。它有两种模式。模式1显示单个图像(与缩略图链接),模式2翻转图像名称阵列,如幻灯片显示,由表单提交触发。在HTML环境中传递参数

所有参数都在URL中传递。在模式1中,调用mpv的链接传递图像文件名和所需的附加数据,但在模式2中,大部分数据被压缩,只有图像文件名被传递(作为字符串通过HTML表单机制)。

在开发中(其中mpv.html与提供图像的HTML页面在同一文件夹中),两种模式都可以正常工作。但在服务器上,虽然模式1完美工作,但模式2(显示引擎位于同一服务器上的自己位置)只能看到“[display engine]?inp1 =”,其中inp1的值应该是一串图像文件名称。一个只传递简单字符的测试也没有显示出来,所以我不得不相信在服务器环境中,显示引擎没有看到在提交之前注入到表单中的strTest的值。

这是一个CORS问题吗?无论如何,有没有人看到传递文件名数组的更成功的方式?

. 
. 
. 
<td><a href="../../mpv/mpv.html?pic=../WebTopics/dk1968_211.jpg&color=#4D4d4d&backcolor=..." target="_blank"><img src="images/dk1968_211_t.jpg"></a></td> 
. 
. 
. 
<form action="../../mpv/mpv.html" method="get" target="_blank"> 
<input type="hidden" id="input1" name="inp1"> 
<input type="submit" value="Play as slide show..."> 
</form> 
. 
. 
. 
<script> 
... 
    arImages.push("../WebTopics/DavidsKids/images/dk1968_216.jpg"); 
... 
var strTest = JSON.stringify(arImages); 
$("#input1").val(strTest); 
... 
</script> 
+0

您需要对URL中的#号字符进行URL编码。他们应该是'%23' – Barmar

回答

0

您需要对href URL中的#字符进行URL编码。否则,它被视为分隔符,并且它后面的所有内容都是URL的哈希值。

<a href="../../mpv/mpv.html?pic=../WebTopics/dk1968_211.jpg&color=%234D4d4d&backcolor=..." target="_blank"> 
+0

也许你误解了我的问题。您参考的链接在两种模式下都能很好地工作。这是通过jQuery发送的数据没有到达URL,但只有在服务器上。顺便说一下,我已经了解到,如果我想要读取值,我必须将%23更改为#。 –

+0

您如何阅读表单中传递的值? – Barmar

0

我的错。根本没有问题。我的开发环境包含jQuery的副本,而服务器环境则没有。

全部固定。