2017-02-10 21 views
0

私は自分自身のために引用システムを書いています。JS(失敗)とCURL(仕事)でAsanaでタスクを作成

私は引用のために、このWebページを持っている、ウィッヒはありません: a)は引用符で囲まれた項目 b)に行わGoogleスプレッドシート(​​内部レコードを作成) C)タスクを作成して)行われる顧客(にメールを送りますアサナで(失敗)

私はサーフィンして私が見つけることができるすべてを読んでいるが、解決策は私の心からスキップするので、私は4 ur asistnaceを頼む。

この

はだけで正常に動作 CURLコード、ウィッヒです:

$.ajax 
    url: 'https://app.asana.com/api/1.0/tasks' 
    beforeSend: (xhr) -> 
    xhr.setRequestHeader 'Authorization', 'Bearer 0/7alotofnumbers' 
    return 
    contentType: 'application/json' 
    method: 'get' 
    data: 
    projects: [ 83694179XXXXXX ] 
    tags: [ 269280227XXXXXX ] 
    assignee: '[email protected]' 
    due_on: '2017-02-09' 
    name: 'testing with js ajax' 
    notes: 'it does not work' 
    followers: [ '[email protected]' ] 

ウィッヒが変身:

curl -H "Authorization: Bearer 0/7alotofnumbers" \ 
    https://app.asana.com/api/1.0/tasks \ 
    -d "projects=83694179XXXXXX" \ 
    -d "tags[0]=269280227XXXXXX" \ 
    -d "[email protected]" \ 
    -d "due_on=2017-02-09" \ 
    -d "name=testing with curl" \ 
    -d "notes=it works just as expected" \ 
    -d "followers[0][email protected]" 

今、私はasanataskcreate.coffeeにWORKS CURLコマンドを翻訳しましたasanataskcreate.js:

$.ajax({ 
    url: 'https://app.asana.com/api/1.0/tasks', 
    beforeSend: function(xhr) { 
    xhr.setRequestHeader('Authorization', 'Bearer 0/7alotofnumbers'); 
    }, 
    contentType: 'application/json', 
    method: 'get', 
    data: { 
    projects: [83694179XXXXXX], 
    tags: [269280227XXXXXX], 
    assignee: '[email protected]', 
    due_on: '2017-02-28', 
    name: 'testing with js ajax', 
    notes: 'it does not work', 
    followers: ['[email protected]'] 
    } 
}); 

そして、 :(

[OK]を失敗すると、私が試してみました:
A)方法: '取得' 'ポスト' と
B)場所、削除します '[]'

Failed to load resource: the server responded with a status of 400 (Bad Request) 
:「コンソール」でクロームデベロッパーツールの助けを借りてproyects、タグやフォロワー

で私は、次のメッセージが表示されます3210

XMLHttpRequest cannot load https://app.asana.com/api/1.0/tasks?projects%5B%5D=836941797XXXXXX&tags%5B%5…&notes=it+does+not+work&followers%5B%5D=myself%40atmysite.com.mx. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://atmysite.com.mx' is therefore not allowed access. The response had HTTP status code 400. 

アーサナからXHRレスポンスをチェックするとき今、デベロッパーツールで、これは私が得るものです:

message: "You should specify one of workspace, project, tag, section" 

uはコードから見ることができるように、プロジェクトIDがありますJSは失敗し、カールが働いています。カール作品におよびAjaxが失敗した理由で「プロジェクト」を分析

、違いがある:

curl: projects=83694179XXXXXX 
js ajax: projects%5B%5D=836941797XXXXXX ==> projects[]=836941797XXXXXX 

いずれは私が間違っているの何任意のアイデアを持っています。事前に

、ここでウル時間と支援

答えて

0

ためのおかげでアサナのタスクを作成するAjaxリクエストの例である:

$.ajax({ 
    beforeSend: function (xhr) { 
    xhr.setRequestHeader("Authorization", "Bearer " + "0/0123..."); 
    }, 
    url: "https://app.asana.com/api/1.0/tasks", 
    method: 'POST', 
    data: {projects:123456789, name: "ajax created task"}, 
}); 

それは間違っているどのくらいのコンパイル済みAjaxコードの不確実です。新しいタスクを作成するには、POSTリクエストを使用する必要があります。データ値は配列ではありません。 contentTypeを指定する必要はありません。デフォルトが有効です。私の例に基づいて、コードを正常な順序で取得できるはずです。

また、Ajaxを使用すると、パーソナル・アクセス・トークンがクライアントに公開されていることにも注意してください。あなたのアカウントで疑わしいものが見つかった場合は、そのPATを削除することができます。

+0

ありがとうございましたJeff、しかしそれはまた失敗します。私はCURLメソッドを使用しています。目を引くのを避けるために、私はPHPコードを難読化しました。 – OfficeYA

関連する問題