我使用以下代码使用从输入表单创建的一组动态参数请求远程服务器JSON。请求工作正常,但我想做的是获得发送的请求URL的字符串。
代码是这样的:
$.getJSON(URL1, params1, function (data) {
console.log(data);
});
URL1是一个变量,具有我正在请求的域的基本值:
var URL1 = "www.domain.com/api/stuff4stuff?jsonp=true&jcb=?"
params1只是一个普通的KVP对象:
var Params1 = {APIINFO:12345,account:8675309}
就像我说我的调用工作得很好,我想要的是得到和输出作为字符串的URL, JQuery产生并发送该请求,包括它发送的随机JQuery代码。
我正在寻找的URL将看起来像这样,我可以在控制台的网络选项卡中查看它,但是我需要在代码中获得它,以便我可以显示它并将其用作变量。
http://www.domain.com/api/stuff4stuff?jsonp=true& jcb = jQuery111108395918845199049_1405403521001& APIINFO = 12345,账户= 8675309,_ = 1405403521002
只是为了清楚,我不是在寻找我的请求所带来的当前URL,我可以得到浏览器窗口URL很好,我正在寻找它发送的JSON请求的实际JQuery URL
您可能需要的是beforeend (xhr,plain) - fiddle
$.ajax({
url: url,
dataType: "jsonp",
jsonp:"jcb",
//jsonpCallback: "setYourCallback",
data:params,
beforeSend: function( xhr, plain) {
console.log(xhr);
$('.out').text(plain.url);
}
})
.done(function( data ) { . . .
我假设您想在PHP代码中获得它-而不是在javascript代码中?
如果您确定请求不会通过SSL:
$json_url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
如果请求可能通过SSL来,那么你需要检测它:
$json_url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if(isset($_SERVER['HTTPS']) && $_SERVER["HTTPS"] == "on") {
$json_url = 'https://' . $json_url;
} else {
$json_url = 'http://' . $json_url;
}