HTML: prevent url-encoding of POST form
No, you can't do what yo try to do. And you probably shouldn't try.
The fact that you want some data inside a variable called DATA means that your POST payload (or your GET query string) will look like
DATA=somevar%3Dsomeval%26somevar2%3Dsomeotherval
If it was (as you want it to be) like
DATA=somevar=someval&somevar2=someotherval
it would mean:
DATA has a value of 'somevar=someval'
somevar2 has a value of 'someotherval'
This is because each variable has the form VARIABLE_NAME=VALUE, and they are separated by '&'.
Check this yourself in your favourite browser debugger (I use firebug and chrome built-in dev tools).
So, the question is: why are you trying to do this? Knowing that it would be easier to help you achieve your goals.
EDIT: the example was wrong
Disable HTML URL encoding for GET parameter for query
Since you mention %% searches I assume you are using MySQL or another SQL back end to query for the data. In that case I would suggest leaving the querystring always formatted as postcode=58&page=1, and add some other parameter to indicate if it should be a %wildcard% search or exact match, and if the wildcard parameter is there, add the %% on the back end when performing the query.
How to Prevent Browser Control from URLDecoding an Embedded URL Link
We had to escape the % symbol.
For example: changing %2B in the link to %252B (%25 being the escape code for a % symbol). Likewise changing %3D to %253D had the same effect and prevent the client application rendering %3D to a = sign.
We couldn't stop the client application from 'decoding' the URL entirely but at least now it decoded to the correct URL value
How to stop percent encoding in HTML form submission
I (respectfully) suggest that you need to more carefully identify the precise nature of the problem, where in the process flow it breaks down, and identify precisely what it is that you actually need to fix. URLEncoding of "+" is the correct thing for the browser to do, because the literal "+" in a query string is correctly interpreted by the server as " " (space).
Your question prompted me to review code I've written that generates signed urls for S3 and my recollection was correct -- I'm changing '+' to %2B, '=' to %3D, and '/' to %2F in the signature... so that is not invalid. This is assuming we are talking about the same thing, such that the "digital signature" you mention in the question is the signature discussed here:
http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#RESTAuthenticationQueryStringAuth
Note the signature in the example has a urlencoded '+' in it: Signature=vjbyPxybdZaNmGa%2ByT272YEAiv4%3D
I will speculate that the problem you are having might not be '+' → '%2B' (which should be not only valid, but required)... but perhaps it's a double-encoding, such that you are, at some point, double-encoding it so that '+' → '%2B' → '%252B' ... with the percent sign being encoded as a literal, which would break the signature.
How to avoid HTML/php url encoding &?
<div class="navigation">
<form class="example" action="<?php echo home_url('/'); ?>"
method="get">
<input type="hidden" placeholder="Search" name="search">
<input type="text" placeholder="Search" name="s">
<button type="submit"><i class="searching"></i></button>
</form>
angular 2 disable url encoding
Angular2 by default uses encodeURIComponent() to encode queryParams in URL, you can avoid it by writing custom URL serializer and override default functionality.
In my case, I wanted to avoid Angular2 to avoid replacing comma(,) by (%2). I was passing Query as lang=en-us,en-uk where it was getting converted to lang=en-us%2en-uk.
Here how I worked it out:
CustomUrlSerializer.ts
import {UrlSerializer, UrlTree, DefaultUrlSerializer} from '@angular/router';
export class CustomUrlSerializer implements UrlSerializer {
parse(url: any): UrlTree {
let dus = new DefaultUrlSerializer();
return dus.parse(url);
}
serialize(tree: UrlTree): any {
let dus = new DefaultUrlSerializer(),
path = dus.serialize(tree);
// use your regex to replace as per your requirement.
return path.replace(/%2/g,',');
}
}
Add below line to your main appModule.ts
import {UrlSerializer} from '@angular/router';
import {CustomUrlSerializer} from './CustomUrlSerializer';
@NgModule({
providers: [{ provide: UrlSerializer, useClass: CustomUrlSerializer }]
})
This won't break your default functionality and take cares of URL as per your need.
Related Topics
How to Make Responsive Website for All Devices
@Font-Face Not Working on Mobile
Add Outward Curving Border to Elements Like This: ◝◟_◞◜
How to Insert Spaces/Tabs in Text Using HTML/Css
How to Write Backwards Compatible HTML5
Css: Borders with Negative Radius
How to Fit a Sticky Background Image and Prevent Overflow in CSS
Flexbox Make One Item 4X Bigger Than Other Items
Jsf/Facelets:CSS File Is Not Being Recognized Using <H:Outputstylesheet> Tag
Is There a Style Type Besides Text/Css
How to Write Equations in HTML
Chrome Could Play HTML5 Mp4 Video But HTML5Test Said Chrome Did Not Support Mp4 Video Codec
CSS Wrong Appearance of Border-Radius on a Nested Div
How to Apply a Border Only Inside a Table
Css: Why Background-Color Breaks/Removes the Box-Shadow
Skew Background Image on One Side with a Border