鍍金池/ 問答/PHP  Linux  HTML/ ajax 與 curl 的來回互動(dòng)?

ajax 與 curl 的來回互動(dòng)?

請(qǐng)問一下
我目前需要一個(gè)功能是ajax與curl來回互動(dòng)至少會(huì)五次
比如說我
ajax -> call.php
此時(shí)會(huì)回給我 200
就會(huì)回傳給我
我就要再打另一個(gè) call2.php
假設(shè)再給我200 我就在打 call3.php
php裡面都是 curl 跟外部server的互動(dòng)(打別人的API)
請(qǐng)問這要怎麼實(shí)現(xiàn)?

補(bǔ)充
這是第一隻API要打的,以及要給的data
clipboard.png

我還有好幾隻要打,
那這邊該怎麼寫才對(duì)?
我這個(gè)ajax是透過 click 觸發(fā)事件的

我以為是在

success: function( data ){
            // 這裡面打第二個(gè)API
          },

只是這樣我打五次就會(huì)有五層了,似乎不太妥當(dāng)?
有沒有高手可以教教我呢

回答
編輯回答
深記你

你可以ajax請(qǐng)求一次,但是curl你可以等第一個(gè)的執(zhí)行結(jié)果出來之后在執(zhí)行第二個(gè),知道達(dá)到你的終止條件,然后把結(jié)果返回給ajax

clipboard.png

2018年3月17日 01:12
編輯回答
夢(mèng)一場(chǎng)

確定可以跨域?

2017年2月20日 23:22
編輯回答
還吻

首先,如果你的這個(gè)功能需要呼叫3個(gè)以上的api來完成的話,建議你重新考慮一下功能的設(shè)計(jì)。從開發(fā)的角度講,這種模式效率低,維護(hù)率高。
其次,如果你不需要針對(duì)每個(gè)成功呼叫的結(jié)果做處理,那么建議你用一次呼叫calls.php,然后在這個(gè)文件里面執(zhí)行三次curl呼叫不同的api. 如果你需要針對(duì)每個(gè)成功呼叫的結(jié)果做處理,在js端你可以考慮Promise來完成。比如:

 Promise.all([
            fetchContent(posts.curId),
            fetchContent(posts.next()),
            fetchContent(posts.next())
        ]).then((contents) => {
            // 返回值;
            contents.forEach((content) => {
                console.log(content); 
            });
        }).then(() => {
            console.log('完成);
        }).catch((err) => { // 錯(cuò)誤
            console.error(err);
        });
        
    function fetchContent(postId) {
        console.log('開始呼叫');
        return new Promise((resolve, reject) => {
            window.fetch(`http://mydomain.com/posts/${postId}`,{
                    method: 'GET'
            }).then((response) => {
                resolve(response.text());
            }, (err) => {
                reject(err);
            });
        });
    };
2017年5月14日 02:27