使用javascript将URL作为参数发送

时间:2021-07-20 10:35:43

I have to send a name and a link from client side to the server. I thought of using AJAX called by Javascript to do this.

我必须从客户端向服务器发送名称和链接。我想过使用Javascript调用的AJAX来做到这一点。

This is what I mean. I wished to make an ajax request to a file called abc.php with parameters :-

这就是我的意思。我希望使用参数对名为abc.php的文件发出ajax请求: -

1. http://thumbs2.ebaystatic.com/m/m7dFgOtLUUUSpktHRspjhXw/140.jpg

2. Apple iPod touch, 3rd generation, 32GB

To begin with, I encoded the URL and tried to send it. But the server says status Forbidden

首先,我编码了URL并尝试发送它。但是服务器说状态是禁止的

Any solution to this ?

对此有何解决方案?

UPDATE ::

更新::

It end up calling to

它最终打电话给

http://abc.com/addToWishlist.php?rand=506075547542422&image=http://thumbs1.ebaystatic.com/m/mO64jQrMqam2jde9aKiXC9A/140.jpg&prod=Flat%20USB%20Data%20Sync%20Charging%20Charger%20Cable%20Apple%20iPhone%204G%204S%20iPod%20Touch%20Nano

Javascript Code ::

Javascript代码::

function addToWishlist(num) {
var myurl = "addToWishlist.php";
var myurl1 = myurl;
myRand = parseInt(Math.random()*999999999999999);

var rand  = "?rand="+myRand ;
var modurl = myurl1+ rand + "&image=" + encodeURI(storeArray[num][1]) + "&prod=" + encodeURI(storeArray[num][0]);
httpq2.open("GET", modurl, true);
httpq2.onreadystatechange = useHttpResponseq2;
httpq2.send(null);
}
function useHttpResponseq2() {
if (httpq2.readyState == 4) {
if(httpq2.status == 200) {
var mytext = httpq2.responseText;
document.getElementById('wish' + num).innerHTML = "Added to your wishlist.";
}
}
}

Server Code

服务器代码

<?php
include('/home/ankit/public_html/connect_db.php');

$image = $_GET['image'];
$prod = $_GET['prod'];
$id = $_GET['id'];



echo $prod;
echo $image;
?>

As I mentioned, its pretty basics

正如我所提到的,它非常基础

More Updates :

更多更新:

On trying to send a POST request via AJAX to the server, it says :-

在尝试通过AJAX向服务器发送POST请求时,它说: -

Refused to set unsafe header "Content-length"
Refused to set unsafe header "Connection"

2 个解决方案

#1


5  

2 things.

2件事。

  1. Use encodeURIComponent() instead of encodeURI().

    使用encodeURIComponent()而不是encodeURI()。

    Here is a detailed discussion on this: When are you supposed to use escape instead of encodeURI / encodeURIComponent?

    这里有一个详细的讨论:你什么时候应该使用escape而不是encodeURI / encodeURIComponent?

  2. If you are new to JavaScript, use some lib to help you do the AJAX work. Like mootools, jQuery, etc.

    如果您不熟悉JavaScript,请使用一些lib来帮助您完成AJAX工作。像mootools,jQuery等

#2


0  

Using a POST request solved my issue :)

使用POST请求解决了我的问题:)

function addToWishlist(num) {
var url = "trial.php";
var parameters = "prod=" + encodeURIComponent(storeArray[num][0]) + "&image=" + encodeURIComponent(storeArray[num][1]);
httpq2.open("POST", url, true);
httpq2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httpq2.onreadystatechange = function(){
if (httpq2.readyState == 4) {
if(httpq2.status == 200) {
var mytext = httpq2.responseText;
document.getElementById('wish' + num).innerHTML = "Added to your wishlist.";
}
}
};
httpq2.send(parameters);
}

#1


5  

2 things.

2件事。

  1. Use encodeURIComponent() instead of encodeURI().

    使用encodeURIComponent()而不是encodeURI()。

    Here is a detailed discussion on this: When are you supposed to use escape instead of encodeURI / encodeURIComponent?

    这里有一个详细的讨论:你什么时候应该使用escape而不是encodeURI / encodeURIComponent?

  2. If you are new to JavaScript, use some lib to help you do the AJAX work. Like mootools, jQuery, etc.

    如果您不熟悉JavaScript,请使用一些lib来帮助您完成AJAX工作。像mootools,jQuery等

#2


0  

Using a POST request solved my issue :)

使用POST请求解决了我的问题:)

function addToWishlist(num) {
var url = "trial.php";
var parameters = "prod=" + encodeURIComponent(storeArray[num][0]) + "&image=" + encodeURIComponent(storeArray[num][1]);
httpq2.open("POST", url, true);
httpq2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httpq2.onreadystatechange = function(){
if (httpq2.readyState == 4) {
if(httpq2.status == 200) {
var mytext = httpq2.responseText;
document.getElementById('wish' + num).innerHTML = "Added to your wishlist.";
}
}
};
httpq2.send(parameters);
}