需要从 JS 代码访问 REST API,使用 jQuery ajax:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
function tryQwintry ( ) { var data = { “params[weight]” : “100” , “params[dimensions]” : “100x100x100” , “params[delivery_pickup]” : “msk_1” , “params[insurance]” : “false” , “params[items_value]” : “350” , “params[retail_pricing]” : “1” } ; $. ajax ( { |
API 文档(所有示例均为 PHP):
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php define ( ‘SITE_URL’ , ‘logistics.qwintry.com’ ) ; define ( ‘API_KEY’ , ‘YOUR_API_KEY’ ) ; //don’t forget to set your key! $url = ‘http://’. SITE_URL . ‘/api/cost’ ; $data = array ( $ch = curl_init ( ) ; |
我用 Java 编写的代码相同:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public double getCostPickup ( String weight , String dimensions , String toPickup , String insurance , String value ) throws Exception {
Map < String , Object > params = new HashMap <> ( ) ; String url = BASE_URL + “/api/cost” ; |
配置ajax请求数据有问题。
所以任何帮助将不胜感激。
更新:更改了我的 JS 代码:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
function tryQwintry ( ) { var data = { “params[weight]” : “100” , “params[dimensions]” : “100x100x100” , “params[delivery_pickup]” : “msk_1” , “params[insurance]” : “false” , “params[items_value]” : “350” , “params[retail_pricing]” : “1” } ; $. ajax ( { |
在 Chrome 的开发者模式下出现此错误:

- 您不能使用 jsonp 使用 POST 请求。设置 GET 请求或不使用 jsonp
- 它的 POST 请求,但是它的跨域请求
- 所以将 jsonp 替换为 json 作为数据类型。再次如前所述,无法将 POST 用于 jsonp stackoverflow.com/a/3860117/1414562
你在使用 CORS 请求吗?
如果不是,则将数据类型更改为 “json” 而不是 “dataType: “jsonp”。
如果您正在执行 CORS,则启用 CORS 请求,那么您需要添加 php 代码以允许 CORS 请求。
| 1 | header ( “Access-Control-Allow-Origin: *” ) ; |
使用 php 标头检查此链接 CORS
Json 数据格式:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var data = { weight : 100 , dimensions : “100x100x100” , delivery_pickup : “msk_1” , insurance : false , items_value : 350 , retail_pricing : 1 } ; $. ajax ( { |
注意:JOSNP
不允许使用方法:”POST”
- 首先,是的,它的 CROS 请求。不要介意 PHP 代码,它只是 API 文档中的示例,我需要正确配置 JS

评论(0)