2014-03-25 60 views
0

我有以下腳本發送給UPS,UPS頁面計算運輸成本。如何從打開UPS頁面返回UPS運輸報價

<script type="text/javascript"> 
$('#shipping').submit(function(e){ 
    var url = [ 
    "http://www.ups.com/using/services/rave/qcostcgi.cgi?accept_UPS_license_agreement=yes", 
    "10_action=3", 
    "13_product="+ $('* [name="selService"]').val(), 
    "14_origCountry="+ $('* [name="txtFromCountry"]').val(), 
    "15_origPostal="+ $('* [name="txtFromZip"]').val(), 
    "origCity="+ $('* [name="txtFromCity"]').val(), 
    "19_destPostal="+ $('* [name="txtToZip"]').val(), 
    "20_destCity="+ $('* [name="txtToCity"]').val(), 
    "22_destCountry="+ $('* [name="txtToCountry"]').val(), 
    "23_weight="+ $('* [name="txtPackWeight"]').val(), 
    "47_rateChart="+ $('* [name="selRate"]').val(), 
    "48_container="+ $('* [name="selPackaging"]').val(), 
    "49_residential="+ $('* [name="selResidential"]').val(), 
    "25_length="+ $('* [name="txtPackLength"]').val(), 
    "26_width="+ $('* [name="txtPackWidth"]').val(), 
    "27_height="+ $('* [name="txtPackHeight"]').val() 
    ].join('&'); 

    window.open(url); //you want to split output by '%' for it to make sense 
    e.preventDefault(); 
}); 
</script> 

我該如何獲得它將產生的運輸價值返還給我的腳本。在PHP中,我會使用類似於:

$fp = fopen($url, "r"); 
    while(!feof($fp)){ 
    $result = fgets($fp, 500); 
    $result = explode("%", $result); 
    $errcode = substr($result[0], -1); 
    switch($errcode){ 
     case 3: 
     $returnval = $result[8]; 
      break; 
    } 
    } 

但我想要做到這一點100%javascript/jquery。 請幫忙。

+0

讓jQuery爲您構建查詢字符串。你沒有正確地逃避任何事情。只需傳遞網址以及數據對象即可。 – Brad

回答

1

而不是做window.open(url);

您只需簡單地使用AJAX功能,似乎你想要做一個GET請求看着正在生成網址...

https://api.jquery.com/jQuery.get/

$.ajax({ 
    url: url, 
    success: function(data) { 
    // data is the returned data 
    } 
}); 
0

你不能發出請求其他域名「ups.com」做的安全問題,如果你會得到如下錯誤

XMLHttpRequest cannot load http://www.ups.com/usin... 
    No 'Access-Control-Allow-Origin' 
    header is present on the requested resource. 
    Origin 'null' is therefore not allowed access. 

研究術語「跨站點腳本」。