Я могу легко создать сообщение из оболочки bash, используя метод curl, описанный в документации по api basecamp. Однако мое приложение не написано на php, поэтому я хотел бы иметь доступ к серверу basecamp через базовый пост ajax. К сожалению, мне кажется, что я не могу перевести оператор curl в сообщение ajax. Я думал, этого будет достаточно:
function callBasecamp() {
var parameters = {
user:"[my_basecamp_username]",
pass:"[my_basecamp_password]",
userAgent: '[my_app] (my_email)',
contentType: 'application/json; charset=utf-8',
data: ({ "subject": "This is a Test Message", "content": "This is test content. Please disregard if notified." }),
};
var data = JSON.stringify(parameters);
$.ajax({
type: "POST",
data: data,
dataType: 'json',
url: "../../../../site_media/proxy.php?url=https://basecamp.com/[account_id#]/api/v1/projects/[project#]/messages.json?" + data,
traditional: true,
success: function(data){
console.log(data);
}
});
}
но хотя мой сервер разработки возвращает ответ HTTP 200 216, basecamp не создает сообщение, и я не вижу возвращенных данных. Я использую прокси-сервер php, чтобы обойти проблемы csrf django:
proxy.php
<?php
// File Name: proxy.php
if (!isset($_POST['url'])) die();
$url = urldecode($_POST['url']);
$url = 'https://' . str_replace('https://', '', $url); // Avoid accessing the file system
echo file_get_contents($url);
есть идеи о том, где могут быть мои трудности?
../../../../
- ой. Плохой... - person random_user_name   schedule 16.03.2014