所以,我的网站上有一个GET提交到第三方网站的搜索表单。其中一个输入值是细分名称,第三方要求它是带有+符号的细分名称。所以,我的价值是被解析并用+'替换空格,但是,在提交时,值被浏览器urlencoded并且反过来不被第三方解析..我的第一个想法是他们是通过不解码他们的价值来完成他们的工作...但在我开始处理他们的客户支持的痛苦过程之前,我宁愿先在这里查看,看看是否有办法可以解决它。
编辑:这是我的代码(网址已删除)
<form action="IDXBroker" method="GET">
<h2>IDX Quick Search</h2>
<div class="element">
<label for="pt">Property Type</label>
<select name="pt" id="pt">
<option value="all">All</option>
<option value="1" selected="selected">Residential</option>
<option value="2">Commercial</option>
<option value="3">Lots and Land</option>
<option value="4">Rental</option>
<option value="5">Multi-Family</option>
</select>
</div>
<div class="element" ng-controller="searchCtrl" class="city-search">
<label for="city">City/Subdivision</label>
<input type="text" ng-model="searchTerm" ng-change="setShowResults()"/>
<ul class="city-results" ng-show="showResults && searchTerm.length >= 3">
<li ng-repeat="item in results | stringSearch:searchTerm"><a href="#" ng-click="selectCity(item)">{{item.data}}</a></li>
<li ng-show="(results | stringSearch:searchTerm).length === 0 && searchTerm.length >= 3">No Results Found</li>
</ul>
<input type="hidden" name="{{searchType}}" value="{{searchTermValue.split(' ').join('+')}}" />
</div>
<div class="element">
<label for="lp">Min Price</label>
<input id="lp" name="lp" type="number" value="200000" />
</div>
<div class="element">
<label for="hp">Max Price</label>
<input id="hp" name="hp" type="number" />
</div>
<div class="element">
<label for="bd">Min Bedrooms</label>
<input id="bd" name="bd" type="text" />
</div>
<div class="element">
<label for="tb">Max Bedrooms</label>
<input name="tb" type="text" />
</div>
<input type="hidden" name="srt" value="newest" />
<div class="buttons">
<input type="submit" value="Search Now" />
</div>
</form>
答案 0 :(得分:0)
不确定您是否可以强制浏览器不对加号进行编码。作为一种解决方法,您可以使用js重新加载窗口。像
这样的东西var id1value = document.getElementById('hp').value;
var id2value = document.getElementById('lp').value;
//repeat for all your inputs to build your string
var q = 'hp=' + id1value + '&lp=' + id2value;
window.location = 'http://IDXBrokerURL?' + q;`
在提交中添加一个onclick来运行你的js函数。然后根本没有编码。
我会将此编码问题提交给他们的开发人员支持。