[fix] params serialize

pull/1/head
Ziqiang Li 2017-12-11 14:14:26 +08:00
parent 2ae82c15f8
commit 9b480dd19f
3 changed files with 50 additions and 36 deletions

View File

@ -46,7 +46,7 @@ function jsonp(url, options) {
}
function serialize(params) {
var param = '?';
var param = '';
for (var key in params) {
if (params.hasOwnProperty(key)) {
param += '&' + key + '=' + encodeURIComponent(params[key]);
@ -55,6 +55,14 @@ function jsonp(url, options) {
return param;
}
function handleUrl(url, params) {
if (!~url.indexOf('?')) {
url += '?';
}
url += serialize(params);
url = url.replace('?&', '?');
}
promise = new Promise(function (resolve, reject) {
if (timeout) {
timer = setTimeout(function () {
@ -67,8 +75,7 @@ function jsonp(url, options) {
resolve(data);
};
params[callback] = id;
url += serialize(params);
url = url.replace('?&', '?');
url = handleUrl(url, params);
// Create script.
script = document.createElement('script');
script.src = url;

View File

@ -1,6 +1,6 @@
{
"name": "simple-jsonp-promise",
"version": "1.0.6",
"version": "1.0.7",
"description": "",
"main": "build/index.js",
"scripts": {

View File

@ -35,11 +35,13 @@ function jsonp( url, options ) {
script.parentNode.removeChild(script);
}
window[id] = noop;
if ( timer ) { clearTimeout( timer ); }
if (timer) {
clearTimeout(timer);
}
}
function serialize(params) {
let param = '?';
let param = '';
for (let key in params) {
if (params.hasOwnProperty(key)) {
param += `&${key}=${encodeURIComponent( params[ key ] )}`;
@ -48,6 +50,12 @@ function jsonp( url, options ) {
return param;
}
function handleUrl(url, params) {
if (!~url.indexOf('?')) { url += '?'; }
url += serialize(params);
url = url.replace('?&', '?');
}
promise = new Promise((resolve, reject) => {
if (timeout) {
timer = setTimeout(() => {
@ -60,8 +68,7 @@ function jsonp( url, options ) {
resolve(data);
};
params[callback] = id;
url += serialize( params );
url = url.replace( '?&', '?' );
url = handleUrl(url, params);
// Create script.
script = document.createElement('script');
script.src = url;